我正在使用 awk,并希望将任意数量的文本文件(参数)发送到我的脚本中,并为每个输入文件“打印一些东西”。
我在这里找到了脚本
并将脚本修改成这个
awk -v nfiles="10" 'NR==FNR{a[$0]++;next}
$0 in a {a[$0]++; next}
{b[$0]++}
END{
for(i in a){
if(a[i]==nfiles) {
print i > "output1"
}
else if(a[i]==1) {
print i > "output3"
}
}
for(i in b){
if(b[i]==nfiles-1) {
print i > "output2"
}
}
}' "$@"
问题是我应该写什么,nfiles="10"
因为它应该是任意数量的文本参数?
我也不太明白这个脚本,它只执行这个部分
else if(a[i]==1) {
print i > "output3"
}
并且只打印出 file1.txt 中的信息。为什么它不执行其余部分,如果我想将所有文件中的第 3 行 ( $3
) 中的所有内容打印到output3
. 谢谢 =)