2019独角兽企业重金招聘Python工程师标准>>>
sed
sed打印指定行
sed '10'p -n xx.txt sed '1,4'p -n xx.txt sed '5,$'p -n xx.txt
sed '$'p -n xx.txt $表示最后一行。
打印包含某个字符串的行-n
sed '/root/'p xx.txt可以使用^.*$等特殊符号
匹配的会连续显示2次,特性符合有些要脱义,
如果想脱义可以使用-r参数,
-e可以实现同时进行多个任务sed -e '/root/'p -e '/body/'p -n xx.txt
可以加-I (大写的i) 参数匹配大写小字母
sed 还可以删除行
sed '/root/d' xx.txt
sed '1d' xx.txt
sed '1,10d' xx.txt
sed '1,$d' xx.txt
以上命令只是以删除后的行显示出来,真实文件不影响
如果要真正的删除可以加参数-i
sed的替换
替换sed '1,2s/ot/to/g' xx.txt 其中s就是替换的意思,
g为全局替换,否则只替换一次的,/也可以为#,@等(把第1行到第2行的ot替换成to)
sed同样适用特殊符号
sed -r '1,10s/ro+/r/g' passwd
以冒号为分隔符将前十行第一个字段与最后一个字段对调
head passwd | sed -r 's/([^:]+):(.*):([^:+])/\3:\2::1'
验证时,\3\2\1忘记加冒号,所有替换后,第一个字段和第二个字段连着了。
删除显示文件所有英文字母(换中方式就是把字母替换成空)
在所有行前面加上固定的字符串
head passwd | sed -r 's/(.)/aaa:&/' //& 表示前面的(.)