У меня есть текстовый файл, в котором есть два столбца:
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
Можно сделать это использование 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