Используя awk
, вы можете сделать что-то вроде этого -
awk -v FS="," 'NR==FNR{a[$1]=$0;next} ($1 in a){print a[$1]}' csv_file txt_file
- Установите Разделитель полей на
,
- Используя первый столбец (слово) вашего CSVфайл в качестве индекса загружает всю строку в массиве.
- Проверьте, находится ли значение текстового файла в массиве.
- Если это так, выведите его
Тест:
[jaypal:~/Temp] cat csv_file
jack,4
rabbit,10
cat,4
red,39
[jaypal:~/Temp] cat txt_file
red
rabbit
cat
[jaypal:~/Temp] awk -v FS="," 'NR==FNR{a[$1]=$0;next} ($1 in a){print a[$1]}' csv_file txt_file
red,39
rabbit,10
cat,4