나는 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