Как вы grep и возвращаете только подходящую строку? т.е. путь/имя файла опущены из результатов.
В этом случае я хочу посмотреть все .bar файлы в текущем каталоге, ища термин FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
Как вы grep и возвращаете только подходящую строку? т.е. путь/имя файла опущены из результатов.
В этом случае я хочу посмотреть все .bar файлы в текущем каталоге, ища термин FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
Не надо find
. Если вы просто ищете шаблон в определенном каталоге, этого должно быть достаточно:
grep -hn FOO /your/path/*.bar
Где -h
- это параметр, чтобы скрыть имя файла, как в man grep
:
-h, --no-filename
Подавить префикс имен файлов на выходе. Это значение по умолчанию, когда для поиска требуется только один файл (или только стандартный ввод).
Обратите внимание, что вы использовали
-h, --with-filename
Напечатайте имя файла для каждого совпадения. Это значение по умолчанию, когда для поиска требуется более одного файла.
Просто замените -H
на -H
. Проверьте man grep
для более подробной информации о параметрах
find . -name '*.bar' -exec grep -hn FOO {} \;
Со страницы руководства:
-h, --no-filename
Suppress the prefixing of file names on output. This is the default when there
is only one file (or only standard input) to search.
Я думаю, что -hn не будет работать в некоторых случаях один. Если у вас есть длинные пути и длинные имена файлов и много файлов для поиска. Некоторые результаты могут иметь несколько признаков конца имени файла и заканчиваться двоеточием, а затем результатом.
Это может выглядеть как
1: что-то
10: Somthing
Я искал этот ответ, но ни один из ответов здесь не является достаточным. Мне нужно иметь возможность вырезать некоторые результаты из файлов, которые похожи и позиции всегда на одном месте. Если я сделаю это таким образом, я получу результат, который выглядит как grep -hn что-то $ HOME/что-то/* | cut -c 10-15 >> somthing.txt
reulsts:
вещь
ethin
но желаемый результат был то есть "вещь". И проблема не в срезе, у меня есть строки, которые могут быть длиннее.
Пожалуйста, если мой вопрос не в том месте, пожалуйста, переместите его и сотрудничайте, и я попытался добавить комментарий, но моя репутация недостаточно высока. Я не могу дать какие-либо подробности о том, что я делаю, потому что это конфиденциальная информация.