9.4/9.5 sed
sed的强项在于查找替换
-n选项,和p一起使用,只打印出匹配的行

sed中也是支持+的,不过要使用\来脱义,或者加上-r选项(类似于grep -E)

打印指定的行
#sed -n '2'p passwd //打印出第二行的内容

# sed -n '2,5'p passwd //打印2到5行的内容

#sed -n '25,$'p passwd //打印25行到末尾的内容

# sed -n '1,$'p passwd //打印全部的内容,图略
在同一个sed表达式中多次匹配 -e
# sed -n -e '/mail/'p -e '/spool/'p passwd
//对每一行依次进行mail和spool匹配,每次匹配到就打印一次,所以下面两个共有的行就打印了2次
//-e可以有多个

匹配的时候不区分大小写,-I
# sed -n '/bus/'Ip test1 
过滤掉指定的行
# sed '1,25'd test1 //过滤掉1到25的内容,也就是显示第25行之后的,并没有删除文件内容,原文件还是33行

-i 删除掉指定的行(会修改文件内容)
# sed -i '1,25'd test1 //删除1到25行的内容

# sed -i '/test1/'d test1 //删除掉含有test1的行

查找替换
sed '1,5s/root/toor/g' test1 //把1到5行中的root替换为toor

# tail test1 |sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'
把文件中的首段和末段颠倒位置


对于查找替换的内容里有/字符的,要用\,@或#来脱义

把文档里的所有英文字母删除掉
# tail test1 |sed 's/[a-zA-Z]//'

在所有的行前面添加固定字符串
# tail test1 |sed -r 's/(.*)/ccc:&/' //&表示小括号里的内容

本文介绍SED命令的基础用法及高级技巧,包括查找替换、行筛选等实用操作。通过实例演示SED如何实现文本处理任务,适合初学者快速掌握SED命令。

被折叠的 条评论
为什么被折叠?



