有向グラフを格納するファイルがあります。各行は次のように表されます
node1 TAB node2 TAB 重み
ノードのセットを見つけたい。組合を取得するより良い方法はありますか?私の現在の解決策には、一時ファイルの作成が含まれます。
cut -f1 input_graph | sort | uniq > nodes1
cut -f2 input_graph | sort | uniq > nodes2
cat nodes1 nodes2 | sort | uniq > nodes
{ cut -f1 input_graph; cut -f2 input_graph; } | sort | uniq
2 回並べ替える必要はありません。
{cmd1; cmd2; } 構文は (cmd1; cmd2) と同等ですが、サブシェルを避けることができます。
別の言語 (Perl など) では、ハッシュの最初の列を丸呑みしてから、2 番目の列を順番に処理することができます。
Bash のみで、構文を使用して一時ファイルを回避できますcat <(cmd1) <(cmd2)
。Bash は、一時ファイル記述子の作成とパイプラインのセットアップを処理します。
スクリプト (bash を必要としないようにしたい場合) で、一時ファイルが必要になった場合は、次を使用します。mktemp