Shell中的查找和替换的sed命令

一、替换文件中的文本

命令格式:

sed -i 's/<search_str>/<target_str>/g' <file_path>

【参数解析】
search_str:需要搜索的字符串(字符串带斜杠’/‘,需要有转移’//‘)
target_str :需要替换成的目标字符串(字符串带斜杠’/‘,需要有转移’//')
file_path   :操作的文件路径

 【例1】字符串“202212”替换为“202301”

文件 text.sh,内容如下:

find / -name "*29*DATATRAFFICDETAILSARCHIVE_202212*.dmp" | xargs md5sum >> /data_md5_202212.txt

done >> /data/data_202212_md5.txt

其他目录执行替换字符串脚本:

sed -i "s/202212/202301/g" /data/text.sh

[admin]$ cd /
[admin /]$ sed -i "s/202212/202301/g" /data/text.sh
[admin /]$
[admin /]$ cd data/
[admin data]$ cat text.sh
find / -name "*29*DATATRAFFICDETAILSARCHIVE_202301*.dmp" | xargs md5sum >> /data_md5_202301.txt

done >> /data/data_202301_md5.txt
 

【例2】将文件中的/a字符替换为-b,注意使用了转义符

sed -i 's/\/a/-b/g' testa.txt

二、替换文件夹下文件中的文本

命令格式:

sed -i 's/<search_str>/<target_str>/g' `grep "<search_str>" -rl <folder_path>`

【参数解析】

-i :表示 inplace edit,就地修改文件。
-r :表示搜索子目录。
-l :表示输出匹配的文件名。
search_str:原字符串。
target_str:要替换成为的新字符串。
folder_path:路径,可以是一个文件路径,也可以是一个目录路径。

【例1】替换同一文件data目录下多个文件text开头文件中的字符

sed -i 's/202301/202212/g' `grep "202301" -rl /data/text*`

[admin data]$cat text.sh text1.sh text.sh   // 同时查看多个文件内容
find / -name "*29*DATATRAFFICDETAILSARCHIVE_202301*.dmp" | xargs md5sum >> /data_md5_202301.txt

done >> /data/data_202301_md5.txt

find / -name "*29*DATATRAFFICDETAILSARCHIVE_202301*.dmp" | xargs md5sum >> /data_md5_202301.txt

done >> /data/data_202301_md5.txt

find / -name "*29*DATATRAFFICDETAILSARCHIVE_202301*.dmp" | xargs md5sum >> /data_md5_202301.txt

done >> /data/data_202301_md5.txt

[admin data]$sed -i 's/202301/202212/g' `grep "202301" -rl /data/text*`
[admin data]$cat text.sh text1.sh text.sh 

[admin data]$ cat text.sh text1.sh text2.sh  // 同时查看多个文件内容
find / -name "*29*DATATRAFFICDETAILSARCHIVE_202301*.dmp" | xargs md5sum >> /data_md5_202301.txt

done >> /data/data_202301_md5.txt
find / -name "*29*DATATRAFFICDETAILSARCHIVE_202301*.dmp" | xargs md5sum >> /data_md5_202301.txt

done >> /data/data_202301_md5.txt
find / -name "*29*DATATRAFFICDETAILSARCHIVE_202301*.dmp" | xargs md5sum >> /data_md5_202301.txt

done >> /data/data_202301_md5.txt
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

释梦燃

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值