shell :linux sed 批量替换字符串

shell :linux sed 批量替换字符串,第1张

Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。

命令如下:

sed -i "s/原字符串/新字符串/g" grep 原字符串 -rl 所在目录

例如:我要把www目录下的所有文件里的 charset=gb2312 替换为 charset=UTF-8,执行命令:

sed -i "s/charset=gb2312/charset=UTF-8/g" `grep charset=gb2312 -rl /www`

即可。

解释一下:

-i 表示inplace edit,就地修改文件

-r 表示搜索子目录

-l 表示输出匹配的文件名

这个命令组合很强大,要注意备份文件。

查找批量替换文件时,去除某种类型的文件,下面表示在./salt/*下的所有文件中,不包括tar.gz结尾的文件,搜索包含有node01字符串的文件

grep "node01" -rl ./salt/* --exclude=*.tar.gz

其实这里的 -r表示递归,-l表示输出文件名,

也可以将 -rl替换为-rn,-n表示是哪一行,会输出行号详细信息

grep "node01" -rn ./salt/* --exclude=*.tar.gz

替换字符串:

把./salt/*目前下所有文件进行遍历,查是否包含node01字符串的,不包括tar.gz结尾的文件。然后把node01用test01进行批量替换。

grep "node01" -rl ./salt/*  --exclude=*.tar.gz | xargs sed -i 's/node01/test01/g'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9024587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-24
下一篇 2023-04-24

发表评论

登录后才能评论

评论列表(0条)

保存