別のファイルからCSVトークンを取得する方法は?

別のファイルからCSVトークンを取得する方法は?

私はbashシェルを使用しています。 CSVファイル「A」を解析し、その文字列のCSVファイル「B」を検索してから、CSVファイルBから一致する行の最初の列の値を出力したいと思います。だから私は努力しました

while IFS=, read -r col1 name col3 col4 col5
do
    echo "I got:$name|$col5"
    value=`grep ${name} /tmp/accounts_created.csv | cut -d, -f${0}`
    echo "value:$value \n"
done < ~/Downloads/all_data.csv

しかし、両方のファイルに一致するデータがあることを知っているにもかかわらず、何らかの理由でこれは機能しません。これを行うより良い方法はありますか?

答え1

私が理解する限り、awkだけが必要です。

awk -F, 'NR==FNR{seen[$2]=1;next} /seen[$2] ~ $0/{print $1}
' ~/Downloads/all_data.csv /tmp/accounts_created.csv

関連情報