我有一个文本文件,其中有两列:
Name Age
我想搜索这个文件的一部分Name
,并在找到第一个匹配项后打印整个Name
示例:
Name Age
Ashok Kumar(father) 32
Deepak khan(son) 19
Nirmal khan(son) 21
I want to search for(son) and want to return Deepak khan
我努力了
grep -r 'John' myfile
答案1
grep
您可以使用PCRE ( ) 来执行此操作-P
:
grep -Po '.*(?=\(son\))' file.txt
(?=\(son\))
是零宽度正向前瞻模式,确保(son)
匹配后紧随其后,即只有 (-o
) 后面的名称(son)
才会显示在输出中
例子 :
$ cat file.txt
Name Age
Ashok Kumar(father) 32
Deepak khan(son) 19
Nirmal khan(son) 21
$ grep -Po '.*(?=\(son\))' file.txt
Deepak khan
Nirmal khan