unix - Unix:如何搜索出现在 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 的第二列中搜索关键字“柬埔寨”并返回类似的内容
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/ && $1 !~ /Cambodia/' input_file
Andy, I'm from Cambodia
Tess, I'm Tess, i also come from Cambodia
通过使用,
分隔符,您可以排除与字符串匹配的第 1$1 !~ /Cambodia/
列,同时匹配将包含该字符串的所有其他列
推荐阅读
- python - WebBrowser 不显示 pythont CGI 程序的完整输出
- cassandra - Memtable 位于 cassandra 的哪里?
- google-chrome - 如何使用 windows 10 在 chrome 中查看缓存的 JS 文件?
- python - 当用户添加反应 Discord.py 时赋予角色
- three.js - 是否有一个函数可以将屏幕输出作为颜色数组来代替?
- python - 如何在 wxPython 4.0.3 中指定单选框内单选按钮的大小
- css - 文本框是在 Firefox 中双击按钮时可以访问的
- android - RecyclerView 没有预览
- r - R在Rmarkdown RNotebook中折叠/隐藏时运行块
- python - 如何在 opencv 中使用 matlab imadjust 函数?