7.4
Posted w494129131
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.4相关的知识,希望对你有一定的参考价值。
1、sed
sed:查找和替换
sed ‘/root/‘p test.txt,查找并打印包含root 的行,在显示时会显示文件所有内容,并将包含root的行打印两次
sed -n ‘/root/‘p test.txt:查找且只显示包含root的行
同时,sed也支持. * 等特殊字符
sed也支持+,在使用+时,需要使用-r进行脱译
sed也支持{}、|等
sed -n ‘2‘p test.txt:打印第二行
sed -n ‘2,5‘p test.txt:打印第二到五行
sed -n ‘25,$‘ test.txt:打印第25到末行
sed -e ‘1‘p -e‘/bus/‘p -n test.txt:其中-e选项表示要执行多个条件,打印第一行,然后查找并打印包含bus的行
sed -n ‘/bus/‘Ip test.txt:查找bus,且不区分大小写
使用sed删除:
sed ‘1,10’d test.txt:删除文件的前10行
但上述删除方法并未真正将文件中内容进行删除,只是将前10不打印出来:
使用-i选项可以删除文件内容,sed -i ‘1,25’d test.txt:删除文件的前25行,查看文件行数,只剩下5行
也可以删除包含指定内容的行,sed -i ‘/user2/‘d test.txt,删除包含user2的行
使用sed替换
sed ‘1,10s/root/toor/g‘ test.txt:将文件前10行中的root,替换成toor,其中s表示替换,g表示全局,执行此命令时会打印文件的全部内容,但是只有前10行进行替换
进行替换时,也可以使用正则表达式,sed -r ‘1,10s/ro+/r/g‘ test.txt
head test.txt |sed -r ‘s/([^:]+):(.*):([^:]+)/3:2:1‘ 将文件前10行中的第一段和最后一段进行替换,其中前面用括号括起来的内容在后面中用表示出来,1、2、3分别表示第一至三个括号中的内容
如果替换的内容中包含有/,需要使用进行脱译,head test.txt |sed ‘s//root/123/g‘,将文件前10行中的/root替换成123
也可以修改分隔符,修改成@就可以执行
使用sed删除指定的字符
例如删除文件内的所有英文字符,sed ‘s/[a-zA-Z]//g‘,在删除时其实就是将指定的字符替换为空字符
使用sed在所有行前面增加字符串
sed -r ‘s/(.*)/aaa:&/’在文件所有行前增加aaa:,其中&表示前面的()
以上是关于7.4的主要内容,如果未能解决你的问题,请参考以下文章