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