この質問は以下に関連しています。これそしてこれ質問。複数行を含むファイルがあり、各行はファイルへのパスです。今、各行を各行とペアリングしたいと思います。その他ライン(自体ではない)。また、私の目的に応じて、ペアはペアとA B
同じでB A
あるため、これらの組み合わせの1つだけを作成する必要があります。
はい
files.dat
短縮表記では、次のように読みます。各文字はファイルパス(絶対または相対)です。
a
b
c
d
e
それから私の結果は次のようになります。
a b
a c
a d
a e
b c
b d
b e
c d
c e
d e
bashでこの問題を解決することをお勧めします。他の質問とは異なり、私のファイルリストはかなり小さく(約200行)、ループとRAM容量を使用しても問題は発生しません。
ベストアンサー1
次のコマンドを使用します。
awk '{ name[$1]++ }
END { PROCINFO["sorted_in"] = "@ind_str_asc"
for (v1 in name) for (v2 in name) if (v1 < v2) print v1, v2 }
' files.dat
PROCINFO
拡張かもしれませんgawk
。サポートされていない場合は、その行をawk
省略しPROCINFO["sorted_in"] = "@ind_str_asc"
て出力をパイプで接続しますsort
(出力をソートしたい場合)。
(これは本当ですいいえ入力をソートする必要があります。 )