複数のファイルから複数のパターンをgrepし、最初の一致を印刷します。

複数のファイルから複数のパターンをgrepし、最初の一致を印刷します。

2つのファイルがあり、複数のファイルfileB fileC fileDからfileA(電話番号リスト)の内容を1つずつgrepし、各数字の最初の項目を印刷したいと思います。最初のクリック後に各電話番号を印刷し、最後の電話番号まで次の電話番号をgrepしたいと思います。その番号がファイルBにすでに存在する場合は、CとDをgrepする必要はなく、次の番号に移動するだけです。助けてください

私はこれを以前に使用したことがあります。
zgrep -f number_list.csv voice*20170301*gz | awk -F "|" '{print $22}' >> register_20170301.csv
zgrep -f number_list.csv sms*20170301*gz | awk -F "|" '{print $22}' >> register_20170301.csv
zgrep -f number_list.csv data*20170301*gz | awk -F "|" '{print $22}' >> register_20170301.csv

ベストアンサー1

while read phone_number
do
    for file in data*20170301*gz
    do 
        zgrep -q "${phone_number}" "${file}"
        if [ "$?" -eq "0" ]
        then
             zgrep -q "${phone_number}" ${file} >> register_20170301.csv
             break;
        fi
    done
done < number_list.csv

おすすめ記事