

■実行コマンド  
awk -F, 'NR==FNR{minus[$1]++; next;} !minus[$1]' file2 file1

■file2の内容  
c  
d  
e

■file1の内容  
a,あ,い,う,え,お  
b,あ,い,う,え,お  
c,あ,い,う,え,お  
d,あ,い,う,え,お  
e,あ,い,う,え,お  
f,あ,い,う,え,お  
g,あ,い,う,え,お  
h,あ,い,う,え,お

■期待結果  
a,あ,い,う,え,お  
b,あ,い,う,え,お  
f,あ,い,う,え,お  
g,あ,い,う,え,お  
h,あ,い,う,え,お

■実際結果  
a,あ,い,う,え,お  
b,あ,い,う,え,お  
c,あ,い,う,え,お  
d,あ,い,う,え,お  
e,あ,い,う,え,お  
f,あ,い,う,え,お  
g,あ,い,う,え,お  
h,あ,い,う,え,お

いろいろを調べてみましたが、原因不明のままです。  
ご教示お願い致します。


CC BY-SA 4.0
2022-11-02T08:57:42.090
91948
2022-11-04T06:11:54.937
55178
question
awk
AWKの one-linerでファイル比較し、一致しないレコードを抽出したいですが、うまく行かないことがあります。


`Ubuntu 20.04.5 LTS`の`mawk 1.3.4
20200120`、および下記の手順で`gawk-5.2.0`をユーザフォルダに落として動作確認したところ期待通りの結果となりました。

[code]

    wget http://ftp.gnu.org/gnu/gawk/gawk-5.2.0.tar.gz
    tar zxvf gawk-5.2.0.tar.gz 
    cd gawk-5.2.0/
    ./configure 
    make
    ./gawk -F, 'NR==FNR{minus[$1]++; next;} !minus[$1]' file2 file1
    
[/code]

`awk`のバージョン見直しと、`gawk`でも再現するかをご確認ください。


CC BY-SA 4.0
2022-11-04T06:11:54.937
91986
2022-11-04T06:11:54.937
9820
91948
answer