一、替换文件中的文本
命令格式:
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