作者:佚名 时间:2023-12-02 09:43:37 阅读:(4)
最近要修改网站上面的内容网站是纯静态的,一种方法数生成的话需要一两天,另外一种也是最快的方法批量替换文件中的内容,接下来云梦编程就为大家介绍一下sed命令替换目录下所有文件中的某字符串,有需要的小伙伴可以参考一下:
sed命令是一个面向字符流的非交互式编辑器,也就是说sed不允许用户与它进行交互操作。sed是按行来处理文本内容的。在shell中,使用sed来批量修改文本内容是非常方便的。
sed [选项] [脚本命令] 文件名
(1)、常用选项:
选项 | 含义 |
---|---|
-e 脚本命令 | 该选项会将其后跟的脚本命令添加到已有的命令中。 |
-f 脚本命令文件 | 该选项会将其后文件中的脚本命令添加到已有的命令中。 |
-n | 默认情况下,sed 会在所有的脚本指定执行完毕后,会自动输出处理后的内容,而该选项会屏蔽启动输出,需使用 print 命令来完成输出。 |
-i | 此选项会直接修改源文件,要慎用。 |
(2)、sed s命令flags标记及功能:
flags 标记 | 功能 |
---|---|
n | 1~512 之间的数字,表示指定要替换的字符串出现第几次时才进行替换,例如,一行中有 3 个 A,但用户只想替换第二个 A,这是就用到这个标记; |
g | 对数据中所有匹配到的内容进行替换,如果没有 g,则只会在第一次匹配成功时做替换操作。例如,一行数据中有 3 个 A,则只会替换第一个 A; |
p | 会打印与替换命令中指定的模式匹配的行。此标记通常与 -n 选项一起使用。 |
w file | 将缓冲区中的内容写到指定的 file 文件中; |
& | 用正则表达式匹配的内容进行替换; |
\n | 匹配第 n 个子串,该子串之前在 pattern 中用 \(\) 指定。 |
\ | 转义(转义替换部分包含:&、\ 等)。 |
(1)、替换指定文件的字符串:
sed -i “s/oldstring/yundreams/g” filename
(2)、批量替换文件中的字符串:
sed -i “s/oldstring/yundreams/g” grep oldstring -rl path
PS:oldstring是待被替换的字符串,yundreams是待替换yundreams的新字符串,grep操作主要是按照所给的路径查找oldstring,path是所替换文件的路径;
以上就是云梦编程为大家介绍的关于Linux下sed命令替换目录下所有文件中的某字符串,了解更多相关文章请关注云梦编程网!