2

Здравствуйте, я использую эту строку

find ./ -iname *txt | xargs grep "ququ" -sl>holis.txt

Чтобы найти текст "ququ" в текстовом файле, а затем написать имя файла, содержащего такое слово в текстовом файле, holis.txt,

У меня вопрос, как я могу написать строку, содержащую такой символ, а также предыдущую строку

1 ответ1

1

Как я могу написать строку, содержащую такой символ, а также предыдущую строку

Используйте -B1 .

Например:

$ seq 10 >file
$ grep -B1 5 file
4
5

Если вы хотите включить имя файла, добавьте -H:

$ grep -HB1 5 file
file-4
file:5

В сочетании с find

Предполагая, что у вас есть либо GNU find либо современный BSD find , тогда ваша полная команда может быть упрощена до:

find ./ -iname '*txt' -exec grep -HB1 "ququ" {} + >holis.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .