web-dev-qa-db-ja.com

2つの出力をソートおよび一意化するためのワンライナー

私は現在、2つの異なるコマンドの出力をsortuniqに対してこれを行っています。

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アドレスへのマッピングのリストを作成します。

これを1行で行う方法はありますか?

(注:ここではtsharkの使用はあまり関係ありません。私の質問は、そのような2つの出力ソースに当てはまります)

2
Juicy

(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

2
Jeff Schaller

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