使用awk比较两个文件时,文件名上的语法错误



如果第1列或第5列中的数字在file1中,我正在尝试使用尴尬打印一个文件2中的行,但是我会遇到我遇到的语法错误我不'理解。

我的输入是:

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 -F 'NR==FNR{a[$1||$5]++;next} (a[$1||$5])' file1.dat file2.dat

,但我得到了错误

awk: file1.dat
awk:      ^syntax error

有人知道是什么原因导致此错误?我试图将文件名放入变量中,但会产生相同的错误。

您已经为场分离器提供了-F标志。因此,下一个参数是字段分隔符(这是您的脚本,因为您没有提供Semperator)。因此,尴尬将第一个文件作为脚本本身。

尝试丢弃-F或添加分离器,例如awk -F '[ t]*' '...' file1 file2

相关内容

  • 没有找到相关文章

最新更新