gnu cut删除所有内容:

时间:2012-11-20 11:48:02

标签: cut

我正在尝试清理一组ipv6 ip地址。

cat /tmp/ipaddress.txt | /bin/grep -i "unexpectedly shrunk window" | /bin/cut -d' ' -f3 | /bin/cut -d'/' -f1 | /bin/cut -d' ' -f3 | /bin/sort --uniq > /var/log/dos_ip6.txt

/tmp/ipaddress.txt包含以下内容

TCP: Peer 0000:0000:0000:0000:0000:ffff:4df6:3e12:12345/80 unexpectedly shrunk window 1550831482:1550831483 (repaired)

/var/log/dos_ip6.txt包含以下内容

0000:0000:0000:0000:0000:ffff:4df6:3e12:12345

我想把最后一个“*:12345”删掉。

我该怎么做

2 个答案:

答案 0 :(得分:1)

如果您考虑使用两个或更多cut命令,可以考虑使用awk

awk 'BEGIN { IGNORECASE=1 } { print gensub(/(.*):.*/, "\\1", "g", $3) | "sort -u" }' /tmp/ipaddress.txt

结果:

0000:0000:0000:0000:0000:ffff:4df6:3e12

否则,到sed的简单管道就足够了:

... | sed 's/\(.*\):.*/\1/'

答案 1 :(得分:0)

我知道这是一篇非常古老的帖子,但如果我们想单独使用cut这样做,我们可以这样做:

echo "TCP: Peer 0000:0000:0000:0000:0000:ffff:4df6:3e12:12345/80 unexpectedly shrunk window 1550831482:1550831483 (repaired)"| cut -d" " -f3| cut -d":" -f1-8

这将导致:

0000:0000:0000:0000:0000:ffff:4df6:3e12