两个tsv文件列的联合

我有一个存储有向图的文件。 每行代表

node1 TAB node2 TAB权重

我想find一组节点。 有没有更好的工会方式? 我目前的解决scheme涉及创build临时文件

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 

无需排序两次。

{cmd1; CMD2; }语法相当于(cmd1; cmd2),但可能会避免一个子shell。

在另一种语言(例如Perl)中,您可以在第一列中搜索哈希,然后按顺序处理第二列。

仅使用Bash,可以通过使用语法cat <(cmd1) <(cmd2)来避免临时文件。 Bash负责创建临时文件描述符并设置管道。

在一个脚本(你可能想避免需要bash),如果你最终需要临时文件,使用mktemp