特定の値を含むフィールドの印刷

特定の値を含むフィールドの印刷

特定の値を含むフィールドを印刷できますか?

次のファイルを検討してください。

foo,boo,123,1234312,ABC
foo,boo,ABC,bla,bla

含まれているがすべてのレコードに固定されていないフィールドがあるため、ABCコマンドは$5最初のレコードと$32番目のレコードの両方に印刷する必要があります。

ベストアンサー1

うん、あなたのように前の質問しかし、すべてのフィールドに一致します。

$ awk -F, '{for(i=1;i<=NF;i++){if($i~/ABC/){print $i}}}' file
ABC
ABC

上記の内容もファイルを印刷します。含む ABC、良いfooABCfooABCbar何か。次のフィールドのみを印刷はい ABC、使用:

awk -F, '{for(i=1;i<=NF;i++){if($i=="ABC"){print $i}}}' file

Perlでも同様です。

perl -F, -lane 'print grep{/ABC/}@F' file     ## field matches
perl -F, -lane 'print grep{$_=="ABC"}@F' file ## field is

おすすめ記事