用于对两个输出进行排序和 uniq 的单行

用于对两个输出进行排序和 uniq 的单行

我目前正在对两个不同命令的输出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

相关内容