sed ,查找
sed -n '/root/'p passwd #列出passwd中有root的行
sed -nr '/o+t/'p passwd #sed -r = grep -E 都是进行脱意
sed -nr '/0{2}/'p passwd #匹配两次o的
sed -nr '/root|bus/'p passwd #匹配root 或者bus的
sed -n '2'p passwd # 查找指定的行
sed -n '2,5'p passwd # 查找2,5行
sed -n '2,$'p passwd # 查找2到末行,$代表末行
sed -n '1,$'p passwd #查找全部
sed -e '1'p -e '/111/'p -n test.txt #同一个表达式,执行多个操作命令,用-e ,注意的是,如果同时有两个命令匹配一样的数据,则会显示两条一模一样的。
sed -n '/bus/'Ip # I表示不区分大小写
sed '1,10'd passwd #删掉某哥文件的前十行,仅仅只是在屏幕当初删除前十行,不会真正的删除
sed -i '1,10'd passwd #是真的会删除前十行
sed -i '/root/'d passwd #删掉root 相关的行
sed '1,10s/root/toor/g' passwd #将1到10行的root全部替换为toor,页面会全部显示出来
sed '1,10s/ro+t/r/g' passwd #jiang 1到10行,所有的ro全部替换为r。
sed 's//root/123/g' #这种情况时,会报错,因为系统不识别,你是怎么划分的,应该写成:
sed 's\/root\/123/g' 要么用反斜杠,要么用@或#号
sed -r 's/([^:]+):(.):([^:]+)/\3:\2:\1' #第一段和最一段做替换
([^:]+) : #:加号以前非:一个或多个
. : #贪婪匹配,一直匹配到最后一个冒号
\1\2\3 代表三个括号,既然调换,则需要写出 \3:\2:\1
sed 's/[a-zA-Z]//g' #将字母全部替换为空,就是删除字母
sed 's/(.*)/aaa: &/ ' #&表示前面的括号。 在行首加aaa
转载于:https://blog.51cto.com/13451715/2301530