いくつかのテキストを返す2つのコマンドがあるとしましょう。たとえば、
$ ./c1
/usr/bin/foo
/usr/bin/bar
/usr/bin/baz
$ ./c2
/usr/bin/foo
/usr/bin/qux
/usr/bin/buzz
/usr/bin/bar
重複した行を削除したいです。つまり、出力は次のようになります(順序は重要ではありません)。
/usr/bin/baz
/usr/bin/qux
/usr/bin/buzz
どうすればいいですか?
ベストアンサー1
かなり単純なパイプラインでトリックを実行する必要があります。
(./c1; ./c2) | sort -u
角括弧は両方の標準出力を取得し、./c1
コマンド./c2
の標準入力に移動しますsort
。このオプションは、-u
一致する各行セットのうちの1つのみを印刷します。
簡素化について学んだJohn WH Smithと洞察力を与えてくれたBakuriuに感謝します。