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

相關文章
相關標籤/搜索