首页 > 解决方案 > 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 列的数据。

标签: bash

解决方案


假设您的数据位于名为 的文件中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$与模式匹配deeDee位于任何行的末尾$


推荐阅读