![用于对两个输出进行排序和 uniq 的单行](https://linux22.com/image/66639/%E7%94%A8%E4%BA%8E%E5%AF%B9%E4%B8%A4%E4%B8%AA%E8%BE%93%E5%87%BA%E8%BF%9B%E8%A1%8C%E6%8E%92%E5%BA%8F%E5%92%8C%20uniq%20%E7%9A%84%E5%8D%95%E8%A1%8C.png)
我目前正在对两个不同命令的输出sort
执行此操作:uniq
tshark -r sample.pcap -T fields -e eth.src -e ip.src > hello
tshark -r sample.pcap -T fields -e eth.dst -e ip.dst >> hello
sort < hello | uniq > hello_uniq
简而言之,我将源 MAC 地址和 IP 输出到文件中。然后,我将目标 MAC 地址和 IP 附加到同一文件中。
然后,我sort
将文件输入到其中,uniq
最终得到唯一的 MAC 到 IP 地址映射的列表。
有没有办法在一行中完成此操作?
(注意:这里的使用tshark
并不真正相关,我的问题适用于任何两个这样的输出源)
答案1
sort
可以接受多个输入文件(并且有一个内置的等效文件uniq
)-u
。将其与幻想结合起来bash
流程替代以导致:
sort -u <(tshark -r sample.pcap -T fields -e eth.src -e ip.src) <(tshark -r sample.pcap -T fields -e eth.dst -e ip.dst) > hello_uniq
答案2
(tshark -r sample.pcap -T fields -e eth.src -e ip.src; tshark -r sample.pcap -T fields -e eth.dst -e ip.dst) | sort | uniq > hello_uniq