匹配某个单词所在的行进行字符替换
#sed ‘/login/s/End/Start/g’ tes.txt
匹配某个单词所在的行,进行在其行的末尾增加某些字符或单词
#sed '/login/s/$/ End/g' tes.txt
匹配某一单词,在其后添加一个单词或字符
#sed 's/root/& SSS/' tes.txt
在每行开头增加 SSS
#sed 's/^/SSS /' tes.txt 或者 #sed 's/^.*$/SSS &/' tes.txt
在每行末尾增加 SSS
#sed 's/$/ SSS/' tes.txt 或者 #sed 's/^.*$/& SSS/' tes.txt
sed 命令实现对文本内容的替换
#cat tes.txt
asdasdasdasdasd
1232341123213
hello nihao tail start try you best start your dream
!@#$%^&*(%^&*()
end end end
#sed '/tail/s/start/end/' tes.txt #匹配tail单词的行并把第一次出现start的替换为end#
asdasdasdasdasd
1232341123213
hello nihao tail end try you best start your dream
!@#$%^&*(%^&*()
end end end
#sed '/tail/s/start/end/g' tes.txt #匹配tail单词的行并把start全局替换为end#
asdasdasdasdasd
1232341123213
hello nihao tail end try you best end your dream
!@#$%^&*(%^&*()
end end end
#sed '/tail/s/start/end/2g' tes.txt #匹配tail单词的行并把第二次出现start的替换为end#
asdasdasdasdasd
1232341123213
hello nihao tail start try you best end your dream
!@#$%^&*(%^&*()
end end end
删除以#开头的行
#sed '/^#/d' tes.txt
删除非以#开头的行
#sed '/^#/!d' tes.txt
删除含有root这个单词的行
#sed '/\<root\>/d' tes,txt 或者 #sed '/root/d' tes.txt
删除匹配o字符的行
#Sed ‘/o/d’ tes.txt
删除以end单词结尾的行
#sed '/end$/d' tes.txt
把某单词或者字符用()括起来
#sed 's/login/(&)/g' tes.txt
注释某行
#sed 's/^PROMOTO/#&/' tes.txt 或者 #sed ‘s/^PROMOTO/#PROMOTO/’ tes.txt
去掉注释某行
#sed '/PROMOTO/s/^#//' tes.txt
sed的高级应用
用sed命令把IPADDR替换成ip并保存成ip.txt文件
#sed 's/IPADDR/ip/w ip.txt' tes.txt
cat ip.txt 查看即可
把ip.txt中的内容插入到匹配'Ethernet'的行后
#sed '/Ethernet/r ip.txt' tes.txt
sed的经典列子
处理以下文件内容并将域名取出并计数以及排序
http://www.baidu.com/index.html
http://www.baidu.com/1.html
http://post.baidu.com/index.html
http://mp3.baidu.com/index.html
http://www.baidu.com/3.html
http://post.baidu.com/index.html
#cat tes.txt | sed -e 's/http\:\/.//g' -e 's/\/.*//g' | sort -rn | uniq -c
3 www.baidu.com
2 post.baidu.com
1 mp3.baidu.com
全部手打,绝对不是为了应付而转载,养成习惯,真的发现一天不学点linux 总感觉少点什么~。欢迎大家纠错!!!
编辑回复