当前位置:首页 > Liunx教程 >

linux下sed命令替换目录下所有文件中的某字符串

发布时间:2023-12-02 09:43:37 作者:佚名 阅读:(4)

最近要修改网站上面的内容网站是纯静态的,一种方法数生成的话需要一两天,另外一种也是最快的方法批量替换文件中的内容,接下来云梦编程就为大家介绍一下sed命令替换目录下所有文件中的某字符串,有需要的小伙伴可以参考一下:

linux下sed命令替换目录下所有文件中的某字符串

1、sed简介:

    sed命令是一个面向字符流的非交互式编辑器,也就是说sed不允许用户与它进行交互操作。sed是按行来处理文本内容的。在shell中,使用sed来批量修改文本内容是非常方便的。

2、语法格式:

sed [选项] [脚本命令] 文件名

3、相关参数:

(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 中用 \(\) 指定。
\ 转义(转义替换部分包含:&、\ 等)。

4、实例:

    (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命令替换目录下所有文件中的某字符串,了解更多相关文章请关注云梦编程网!

© 2023 - 云梦编程网 版权所有 鲁ICP备2021017318号-4