输入文件看起来像这样的第三次出现: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