1)cat -n /tmp/passwd | sed '2,5d'#显示passwd内容,将2,5行删除后显示2)cat -n /tmp/passwd | sed '2a hello world'#在第二行后加上“hello world字符串”3)cat -n /tmp/passwd | sed '2a first line! \ second line!'使用续航符后回车,输入后续行,再以’回车结束
4)cat -n /tmp/passwd | sed '2,5c I am a good man!'5)cat -n /tmp/passwd | sed -n '5,7p'#打印5~7行6)ifconfig eth0 | grep'inet' -w | sed 's/^.*inet//g' | sed 's/net.*$//'# 截取ifconfig中的ip7)ifconfig eth0 | grep'inet' -w | awk -F " "'{print $2}'# 截取ifconfig中的ip8) cat /etc/man_db.conf|grep'MAN'| sed 's/#.*//g' | sed '/^$/d'#将/etc/man_db.conf中的man设置取出,单不要说明
3、基础实例
1)删除首行空格:
sed 's/^[ ]*//g' test.txt
sed 's/^[[:space:]] *//g' test.txt
sed 's/^[[:space:]] *//g' test.txt
2)行前添加新一行
sed 's/pattern/\n&/g' test.txt
3)行后添加新一行
sed 's/pattern/&\n/g' test.txt
4)变量替换
sed -e 's/$var1/$var2/g' test.txt
5)在指定行插入字符串
sed -i '1 i 123243423' test.txt #在第一行插入1232434236)在最后一行插入字符串
sed -i '$ a \123243423' test.txt #在最后一行插入\1232434237)在匹配行前插入字符串
sed -i '/pattern/' i "要插入的字符串" test.txt
8) 在匹配行后插入字符串
sed -i '/pattern/'a"要插入的字符串" test.txt
9) 删除文本中空行、以空格组成的行及以#号注释的行
grep -v ^# filname | sed /^[[:space:]]*$/d | sed /^$/d10)将/tmp文件夹下的所有文件中的123都改成abc
sed -i 's/123/abc/g' `grep 123 -rl /tmp/`
11)批量修改文件名
http://www.123.bz.com/1231.html
http://www.123.cz.com/12133.html
http://www.123.dz.com/12133.html
需求:将http://www.123.*.com改为http://www.123.home.com/12133.html
sed -i 's@http://www.123.[^.]*.com@home.com@g' test.txt
12)sed按照日期截取日志
sed /var/log/secure | sed -n '/12:46:46/,/12:46:57/p'