SHELL编程之sed学习





1.显示/etc/passwd文件中1~5行内容
# sed -n '1,5p' /etc/passwd
2.在第二行后面的一行加上'Hello China!' 字符串
# cat -n /etc/passwd | sed '2a Hello China!'
3.在第2行后面一行加上两个字
# cat -n /etc/passwd | sed '2a this is the first line !\
> this is the second line !'
4.将第2~5行内容替换为I am a good guy
# cat -n /etc/passwd | sed '2,5c I am a good guy!'
5.只显示第5~7行,注意p与-n的配合使用!
cat -n /etc/passwd | sed -n '5,7p'
6.使用ifconfig列出IP 我们只想要eth0的IP地址(注意sed的正则表达式)
ifconfig eth0 | grep "inet addr:" | sed 's/^.*inet addr://' | sed 's/ *Bcast.*$//'
7.去掉.bash_profile中空行和带#的行
sed -e 's/^#.*$//g' .bash_profile.bak sed -e '/^$/d'

sed -e '/^#.*$/d' .bash_profile.bak sed -e '/^$/d'

sed基础用法举例
1.删除行首空格
sed -i 's/^ //' .bash_profile.bak
2.使用变量替换(使用双引号)
sed "s/export/set/" .bash_profile.bak
sed 's/erase/jason/' .bash_profile.bak
3.在第一行前插入文本
sed '1 i\jason' .bash_profile.bak
4.在第一行后插入文本
sed '1 a\jason' .bash_profile.bak
5.在匹配行前插入
sed '/erase/ i jason' .bash_profile.bak
6.在匹配行后插入
sed '/erase/ a jason' .bash_profile.bak
7.删除文本中所有空行和空格或#开头的行
sed -e '/^#.*$/d' .bash_profile.bak sed -e '/^$/d' sed -e '/^ .*$/d'
8.去掉出1~2行尾的#
sed '1,2s/#$//g' .bash_profile.bak
9.去掉1~2行头的#
sed '1,2s/^#//g' .bash_profile.bak
10.1~2行头添加#
sed '1,2s/^/#/g' .bash_profile.bak
11.1~2行尾添加#
sed '1,2s/$/#/g' .bash_profile.bak 
12.将http://*.jason.com更改为/home/html/www.5566.com
$ cat test.txt
http://www.123.com/product/2007080412/315613171.shtml
http://bz.456.com/product/20080808/311217.shtml
http://gz.789.com/product/20090909/311412.shtml

sed 's/^http.*.com/\/home\/html\/www.jason.com/' test.txt

13.显示某脚本指定区间内的内容
sed -n '/16:16:14/,/16:16:22/p' monitorguard.out.bak
 




Related posts

coded by nessus
分享:  DeliciousGReader鲜果豆瓣CSDN网摘
Trackback

no comment untill now

Add your comment now

无觅相关文章插件