bash - grep 列中的子字符串并打印该列中包含该子字符串的行
问题描述
例子:
a,bee,a bee
c,fee,c dee
e,dee,e bee
g,hee,d deen
h,aee,t Dee
如果上面的块是 3x5 数据,我想打印第三列中包含“dee”的行,它应该不区分大小写,只找到完全匹配的单词(例如“deen”是不可接受的),输出应该如下:
c,fee,c dee
h,aee,t Dee
Bash 命令看起来如何
我试过的是:
awk -F"," '{print $3}' filename | grep -iw 'dee'
但我仍然需要第 2 列的数据。
解决方案
假设您的数据位于名为 的文件中dat
,请尝试以下操作:
sed -ne '/[dD]ee$/p' dat
或者,如果您喜欢使用awk
:
awk '/[dD]ee$/' dat
或者,如果您喜欢使用grep
:
grep -i 'dee$' dat
那么输出是
c,fee,c dee
h,aee,t Dee
尝试探索如何使用正则表达式匹配模式。在您的情况下,您的正则表达式[dD]ee$
与模式匹配dee
或Dee
位于任何行的末尾$
。
推荐阅读
- c - 通过指针传递对象时成员值丢失
- mysql - mysql 8 --skip-symbolic-links
- excel - 如何在 Excel 的行中自动生成 E1、E2、E3、E4?
- php - 根据匹配值从两个数组创建新数组
- php - 将数组分成相等的部分,每个数组最多 6 个项目
- php - 在控制器类中注入容器
- git - 删除 gitlab 注册表中的所有 git docker 镜像,但标记为最新的镜像除外
- excel - 单击工作表 1 范围内的单元格,弹出输入框,将值输入工作表 2 上的该单元格
- stm32 - STM32F429I可以同时使用TFT LCD和USB FS模式吗
- javascript - VueJS - 模态组件内的表单模板