我正在尝试计算两个命令的输出之间的差异,awk
但我的简单尝试似乎失败了。这是我正在尝试的:
diff $(awk '{print $3}' f1.txt | sort -u) $(awk '{print $2}' f2.txt | sort -u)
由于我未知的原因,这不起作用。我假设$()
构造用于捕获另一个命令的输出,但我的“diff”调用无法识别提供给它的两个输入。有什么办法可以让我完成这项工作吗?
顺便说一句,鉴于我登录到没有“写入”权限的生产设备,我无法使用将这两个命令的输出写入单独文件的明显解决方案。
答案1
diff
需要两个文件的名称,因此您应该将两个输出放在两个文件上,然后比较它们:
awk '{print $3}' f1.txt | sort -u > out1
awk '{print $2}' f2.txt | sort -u > out2
diff out1 out2
或者,使用ksh93
、bash
或zsh
,您可以使用进程替换:
diff <(awk '{print $3}' f1.txt | sort -u) <(awk '{print $2}' f2.txt | sort -u)