输入文件如下所示:
Jan 23 14:57:16 TCP 217.79.188.21:80 in
我试过:
sed 's/:[^:]* in/ in/'
但它不断删除 :16 而不是删除 :80
我怎样才能解决这个问题?
尝试同时匹配 IP 和端口,并将其替换为仅 IP。
sed -E -e 's/:[[:digit:]]{1,3} in/ in/'
这可能对您有用:
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