2
我想用awk打印包含在一個文件2中的行,如果列1或5中的數字在file1中,但我得到語法錯誤我不明白。當使用awk比較兩個文件時文件名的語法錯誤
我輸入的是:
file1.dat
1
3
4
6
8
13
14
25
etc...
File2.DAT的
2 GLU 1 - 3 ARG 2
24 ASP 2 - 12 LYS 1
3 ASP 1 - 25 ARG 2
7 LYS 2 - 17 GLU 2
18 ARG 1 - 13 GLU 2
etc...
在這種情況下,我想
2 GLU 1 - 3 ARG 2
3 ASP 1 - 25 ARG 2
18 ARG 1 - 13 GLU 2
我試圖做輸出這與以下awk線
awk -F 'NR==FNR{a[$1||$5]++;next} (a[$1||$5])' file1.dat file2.dat
,但我得到的錯誤
awk: file1.dat
awk: ^syntax error
有誰知道是什麼原因造成這個錯誤?我試圖將文件名稱放入變量中,但會產生相同的錯誤。
我不確定腳本(或算法)如何工作,但語法錯誤是由於將「file1.dat」視爲awk代碼,因爲實際的awk代碼被視爲「輸入字段分隔符」 F。如果你刪除了-F,這個特定的語法錯誤可能會消失,但不知道你是否會得到所需的輸出。 – Prem