1

输入文件如下所示:

Jan 23 14:57:16 TCP 217.79.188.21:80 in

我试过:

sed 's/:[^:]* in/ in/'

但它不断删除 :16 而不是删除 :80

我怎样才能解决这个问题?

4

3 回答 3

0

尝试同时匹配 IP 和端口,并将其替换为仅 IP。

于 2012-04-06T11:40:01.543 回答
0
sed -E -e 's/:[[:digit:]]{1,3} in/ in/'
于 2012-04-06T11:54:35.527 回答
0

这可能对您有用:

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
于 2012-04-06T16:56:40.707 回答