Из данного каталога я ищу, чтобы определить, какие файлы:

  1. содержать pattern
  2. но НЕ в строке 1

Я знаю, как выполнить часть 1 - grep -nHRF [pattern] [path] однако, я ищу фильтр на основе тех, которые соответствуют pattern , но не отображаются в строке 1.

3 ответа3

1

Что-то вроде:

grep -n 'pattern' path | grep -v ':1:'
0

Используя sed с диапазоном адресов:

sed -n '2,/pattern/p' file

которая будет печатать в строке, соответствующей pattern начиная со 2-й строки файла.

0

grep -nHRF pattern path но без строки 1 с GNU sed, будет выглядеть так:

shopt -s nullglob globstar
for f in path/**; do
    sed -n '1n; /pattern/{F;=;p}' "$f"
done | paste -d: - - -

Вам нужно перебрать файлы, иначе = выведет совокупный номер строки из всех строк всех файлов, а 1n будет соответствовать только первой строке первого файла.

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