将文本文件中的tcpdump输出写入一行

问题描述 投票:1回答:1

我想将文本中的所有行合并为一行。使用以下命令,我可以监视DHCP流量:

tcpdump -lni eth0 -vvv -s 1500 '((udp port 67) and (udp[247:4] = 0x63350103))' | grep --line-buffered -E -i 'client-id|requested-ip|hostname'

对于每个新连接,我都会在一行上看到3个结果(IP,MAC,主机名)。

可以将这三个结果写到一行中,然后写在文件上吗?

谢谢

tcpdump
1个回答
0
投票

使用tr删除带有-d的换行符。在我的机器上运行并使用en0而不是eth0,我在一行上看到了这一点:

$ tcpdump -lni en0 -vvv -s 1500 '((udp port 67) and (udp[247:4] = 0x63350103))' | grep --line-buffered -E -i 'client-id|requested-ip|hostname' | tr -d '\n' > output.txt
$ cat output.txt
        Client-ID Option 61, length 7: ether 6c:96:cf:d8:7f:e7      Requested-IP Option 50, length 4: 172.31.99.198     Hostname Option 12, length 3: "mbp"

>将覆盖标准输入内容的文件。查看tr的manpage

© www.soinside.com 2019 - 2024. All rights reserved.