sed,以行为单位进行处理,可以直接将文件的内容进行增删改查等操作
格式:sed [选项] 参数 文件
-r 支持正则表达式
-i 直接修改文件内容
-n 只打印匹配的行
a 在当前行下面插入内容
i 在当前行上面插入内容(直接修改,原文件也会修改)
c 把选定行改为新的文本(替换所在那行)
p 打印行(一般与-n一起使用,屏蔽默认输出,否则会出现两行内容)
s 替换指定字符
第一部分:
sed -n '3,6p' passwd #打印3-6行
sed -i 'd' passwd #删除所有内容行
sed -i '1,4d' passwd #删除1-4行
sed -n '1p;4p' passwd #打印第1和第4行
sed -n '3,+10p' passwd #打印第3行以及后面10行
sed -n '1~2p' passwd #打印奇数行
sed -n '2~2p' passwd #打印偶数行
sed -n '/root/p' passwd #打印包含root的行
sed -n '/bash$/p' passwd #打印bash结尾的行
sed -n '/^root/p' passwd #输出以root开头的行
sed -n '$=' passwd #输出文件总行数
sed -n '2,6d' passwd #删除2-6行
sed '/xml/d' passwd #删除所有包含xml的行
sed '/xml/!d' passwd #删除所有不包含xml的行,!取反
sed '$d' passwd #删除最后一行
sed '/^install/d' passwd #删除install开头的行
sed '/^$/d' passwd #删除所以空行
第二部分:
sed 's/ww/web/' test.txt #每行中第一个ww改成web
sed 's/ww/web/g' test.txt #将所有的ww改成web
sed 's/ww/web/3' test.txt #每行中第三个ww改成web
sed 's/xml//g' test.txt #将所有的xml都删除(换成空)
sed 's#/bin/bash#/sbin/sh#g' passwd #包含/的替换,可以把格式换成#
sed '1,7s/^/#/' passwd #第1~7行注释掉
sed 's/^#//g' passwd #将所有注释去掉