sed用法整理

针对正则表达式

Thu Jan 24 16:16:16 2017 TCP from 192.168.2.128:8900 to 61.168.222.29:49471 66 bytes,ide

进行处理,把最后一个冒号删掉it


sed -r 's/:([^:]+$)/ \1/'class

用了-r,是使用正则表达式awk

s是替换变量

[^:]+$   $是从行末开始,[^:]不是:符号,+是表示屡次sed

()  里的内容进入临时变量,以供后面的\1调用,实际上是\(.\),不过用了-r,就不要\方法

前面的:替换成空格,\1调用了最后的冒号隔离出来的部分di


还有更加简单的方法view

sed 's/:/ /4'

最后的4就是表明第几个,这个用法之前彻底没见过


用awk业能够实现

awk '{print gensub(":([^:]+$)"," \\1",1,$0)}'


看一下简单的例子,用-r和不用的差异

echo "aaa bbb "|sed -r 's/(.)/C/'

Caa bbb


echo "aaa bbb "|sed 's/(.)/C/'
aaa bbb


echo "aaa bbb "|sed 's/\(.\)/C/'
Caa bbb


echo "bbs1234567890" | sed 's/[a-z]\{3\}//'
1234567890


echo "bbs1234567890" | sed -r 's/[a-z]{3}//'1234567890

相关文章
相关标签/搜索