我有一个存储有向图的文件。 每行代表
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