Напечатайте имя файла перед выходными строками совпавших шаблонов grep - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу напечатать содержимое строки сопоставленного шаблона из входного файла в выходной файл. Я использую:

    grep -hnr "pattern" ./input.txt > output.txt 

Файл Output.txt имеет вид:

this line has the word pattern in it 

Но я хочу напечатать имя входного файла в той же строке в выходном файле. Например, я хочу, чтобы выходной файл был таким:

input this line has the word pattern in it 

Если шаблон совпадает несколько раз во входном файле, я хочу напечатать имена файлов несколько раз. Например:

input this line has the word pattern in it 
input this line also has same pattern

и, наконец, я хочу сделать это в каталоге со многими входными файлами (формат * .txt) и сгенерировать один файл output.txt со всеми результатами.

1 Ответ

0 голосов
/ 04 апреля 2019

Просто используйте:

 grep -H "pattern" ./input.txt > output.txt 

С man grep:

-H, --with-filename
Распечатать имя файла для каждого совпадения.Это значение по умолчанию, когда для поиска требуется более одного файла.

-h, --no-filename
Подавлять префикс имен файлов при выводе.Это значение по умолчанию, когда для поиска требуется только один файл (или только стандартный ввод).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...