Unix:如何搜索出现在 csv 列中的单词

Unix: How can I search for a word that appears in a column in a csv

我有一个包含两列的 csv 数据集,如下所示

Andrew, hello I'm from Germany
Andy,   I'm from Cambodia
Arthur, I come from Hong Kong
Alec,   I'm of african descent
Richard,I'm chinese
Tess,   I'm Tess, i also come from Cambodia

如果我想在此 csv 的第二列中搜索关键字 'cambodia' 和 return 类似

的内容
Andy,   I'm from Cambodia
Tess,   I'm Tess, i also come from Cambodia

我试过 $ cut -d ',' -f1,2 file | grep -i “\bcambodia\b” 但是这段代码也搜索了第一列,我不想要,我只想搜索第二列,我想在输出中保留第一列

您可以考虑 awk 使用逗号作为分隔符

$ awk -F, '/Cambodia/ &&  !~ /Cambodia/' input_file
Andy,   I'm from Cambodia
Tess,   I'm Tess, i also come from Cambodia

通过使用 , 分隔符,您可以排除与字符串 !~ /Cambodia/ 匹配的第 1 列,同时匹配将包含字符串

的所有其他列