我正在使用 bash shell。我想解析一个 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