字符串替换
将1.sh中的echo替换成haha
[root@mio-test ~]# cat 1.sh #!/bin/bash file_jpg='2222.class.php.jpg' file_name=${file_jpg##*.} echo $file_name [root@mio-test ~]# [root@mio-test ~]# cat 1.sh | sed s/echo/haha/ #!/bin/bash file_jpg='2222.class.php.jpg' file_name=${file_jpg##*.} haha $file_name
-i 将替换结果应用到原文件
[root@mio-test ~]# sed -i 's/echo/replace_echo/' 1.sh [root@mio-test ~]# cat 1.sh #!/bin/bash file_jpg='2222.class.php.jpg' file_name=${file_jpg##*.} replace_echo $file_name
-g 替换所有匹配的字符串
[root@mio-test ~]# sed -ig 's/file/replace_file/' 1.sh [root@mio-test ~]# cat 1.sh #!/bin/bash replace_file_jpg='2222.class.php.jpg' replace_file_name=${file_jpg##*.} replace_echo $replace_file_name
移除空白行
[root@mio-test ~]# cat 1.sh | sed '/^$/d' #!/bin/bash replace_file_jpg='2222.class.php.jpg' replace_file_name=${file_jpg##*.} replace_echo $replace_file_name
已匹配字符串标记&
&可以标记匹配的字符串,比如我们要给每个单词加一个[]
[root@mio-test ~]# echo 'haha is hehe' | sed 's/\w\+/[&]/g' [haha] [is] [hehe]
引用
可以在替换中使用变量
replace='replace_word' find='word' txt='word is word' echo "$txt" | sed "s/$find/$replace/g" #输出replace_word is replace_word