輸入文件看起來像這樣的第三次出現:sed將刪除分隔符
Jan 23 14:57:16 TCP 217.79.188.21:80 in
我想:
sed 's/:[^:]* in/ in/'
,但會將刪除:16而不是去除:80
我該如何解決這個問題?
輸入文件看起來像這樣的第三次出現:sed將刪除分隔符
Jan 23 14:57:16 TCP 217.79.188.21:80 in
我想:
sed 's/:[^:]* in/ in/'
,但會將刪除:16而不是去除:80
我該如何解決這個問題?
這可能會爲你工作:
echo "Jan 23 14:57:16 TCP 217.79.188.21:80 in" | sed 's/:..//3'
Jan 23 14:57:16 TCP 217.79.188.21 in
或(更可能是端口號可以是任意數字):
echo "Jan 23 14:57:16 TCP 217.79.188.21:80 in" | sed 's/:[^ ]*//2'
Jan 23 14:57:16 TCP 217.79.188.21 in
sed -E -e 's/:[[:digit:]]{1,3} in/ in/'
如果是':80'次數,每次,只要使用':80英寸'爲sed條件 – hjpotter92 2012-04-06 11:39:39
對我來說,它只是工作:$ echo「Jan 23 14:57:16 TCP 217.79.188.21:80 in」| sed's /:[^:] * in/in /'結果爲 Jan 23 14:57:16 TCP 217.79.188.21 in – rednaw 2012-04-06 11:41:47
也適用於我,公式是正確的 – wisent 2012-04-06 12:11:43