2
我試圖在腳本中處理10個與awk
的文件,並且出現以下錯誤。處理多個文件時出錯
$ sh skipper.sh file1 filea fileb filec filec fileb filea fileb filec fileb awk: cmd. line:2: (FILENAME=filec FNR=7) fatal: cannot open file `file10' for reading (No such file or directory)
是否有人知道如何解決它?它與< 10個文件正常工作,但我需要使用它10或50個文件。
這裏是我的代碼
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"
}
}
}' $1 $2 $3 $4 $5 $6 $7 $8 $9 $10
這不是一個awk問題。這是一個殼問題。 $ 10是第一個參數,在它不是腳本的第10個參數之後,它是0。我建議爲你使用的shell添加一個標籤。你的shell可能有一些重複整個命令行而不是一個參數。 – bbadour 2010-09-01 00:20:55
您應該使用'「$ @」',而不是列出所有這些位置參數'$ 1 $ 2 ...'。 – Cascabel 2010-09-01 00:24:03