sed工具
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed工具相关的知识,希望对你有一定的参考价值。
一、sed工具
-
1?sed可以实现grep的功能,但是比较麻烦,没有颜色显示,它的强项就是查找替换;
匹配:
sed -n ‘/root/‘p 1.txt
sed -n ‘/r+t/‘p 1.txt 它等于 sed -nr ‘/r+t/p 1.txt
sed -n ‘/^1/‘p 1.txt
sed -n ‘/r..o/‘p 1.txt -
2?打印指定的行
sed -n ‘2‘p 1.txt 打印第二行
sed -n ‘2,5‘p 1.txt 打印2至5行
sed -n ‘2,$‘p 1.txt 打印2至最未行
sed -n ‘1,$‘p 1.txt 打印全部行 -
3、多项匹配
-e 我在同一个表达式里面,我不仅要匹配还要打印出来,就是做多个动作
sed -e ‘1‘p -e ‘/root/‘p -e ‘/oo/‘p -e ‘/ro/‘p 同时匹配三个项
-
4?不分大小写匹配
sed -n ‘ro‘Ip 1.txt
-
5、删除
sed ‘1,10‘d 1.txt 除了前十行,把剩下的行列出来。不删除原文件;
sed -i ‘1,10‘d 1.txt 删除1-10行
sed -i ‘user‘d 1.txt 删除文件里面所有user字符
-
6、替换
sed ‘1,10s/root/toor/g‘ 1.txt :把1-10行的所有root替换成toor ,g:全局替换,如果不加g只替换该行出现的第一个
sed r ‘1,10s/ro+/rt/g‘ 1.txt
head 1.txt |sed -r ‘s/([^:]+):(.*):([^:]+)/\3:\2:\1/‘
我们把前10行调换第一段跟最后一段替换位置,
s 替换命令,
([^:]+)非:的字符,如果sed用()一定要用-r选项
: 分隔符,(我们把这一段,中间一段,最后一段)
\1 代表第一个()
\2 代表第二个()
\3 代表第三个()
因为我们要把最后一段跟最前一段进行调换,那么我们就要进行调换。
head 1.txt |sed ‘s/\/root/123/g‘ 把/root/替换成123,如果有/,那么我们就得脱义。
head 1.txt |sed ‘s//sbin/nologin/123/g‘ 把/sbin/nologin 替换成123,因为里面存在多个/,那我们就得脱义,得写成:head 1.txt |sed ‘s/\/sbin\/nologin/g 或者写成 head 1.txt |sed ‘[email protected]/sbin/[email protected]‘ 或者我们用#代替/
head 1.txt |sed ‘s/[a-zA-Z]//g‘ 删除文档里面所有字母。
head 1.txt |sed -r ‘s/(.*)/aaa:&/‘
把所有行的前面加上一个字符串aaa, 使用小括号(),一定要加-r选项,小括号()里面的内容,我们可以用\1或者& 表示。
一定要多多练习grep ,sed ,awk ;多练才有效果!!!
以上是关于sed工具的主要内容,如果未能解决你的问题,请参考以下文章