다른 파일에서 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

관련 정보