我有以下 tcpdump 流:
Current:
07:36:03.848461 IP 172.17.3.41.33101 > 172.17.3.43.17408: UDP, length 44
07:36:03.848463 IP 172.17.3.42.33101 > 172.17.3.43.17409: UDP, length 44
07:36:03.848467 IP SYSTEM-A.33101 > 172.17.3.43.17418: UDP, length 45
07:36:03.848467 IP SYSTEM-B.33101 > 172.17.3.43.17419: UDP, length 45
端口号是十进制的。如何将其通过管道传输到 sed 或 awk 以修改流,使其与端口号相同的流更改为十六进制:
Expected:
07:36:03.848461 IP 172.17.3.41.814d > 172.17.3.43.4400: UDP, length 44
07:36:03.848463 IP 172.17.3.42.814d > 172.17.3.43.4401: UDP, length 44
07:36:03.848467 IP SYSTEM-A.814d > 172.17.3.43.440a: UDP, length 45
07:36:03.848467 IP SYSTEM-B.814d > 172.17.3.43.440b: UDP, length 45
如果我有端口号,我会使用它来将其转换为十六进制:
echo 33101 | sed -e 's/.*://' | xargs printf "%x\n"
814d
我一直在尝试解决这个问题,但没有运气。如何'.'
在流的第三和第五列中最后一次出现后替换端口号,然后动态将其更改为十六进制?