0

で複数のファイルを開き、awkこのコマンドをテストしています

私はテストのためにこれを試しています

awk -F"," 'NR==FNR{print FILENAME} {print FILENAME}' file2.txt file1.txt

2 番目のブロックは NR != FNR のときに実行する必要がありますが、私にとっては常に実行されています。

この構文は正しいですか

4

1 に答える 1

1

2 番目のアクションのパターンを指定していないため、常に実行されます。NR!=FNR のときだけ実行したい場合は、次のようにしてみてください。

NR==FNR { printf("NR==FNR, Filename=%s", FILENAME); }
NR!=FNR { printf("NR!=FNR, Filename=%s", FILENAME); }

良くも悪くもelsefor パターンがないので、通常はそれぞれを明示的に指定することになります。

于 2013-02-04T05:21:10.390 に答える