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