Подтвердить что ты не робот

Пропуск первых n строк при использовании регулярных выражений с sed?

В sed, можно ли пропустить первые n строк при применении регулярного выражения? В настоящее время я использую следующее:

cat test | sed '/^Name/d;/^----------/1;/^(/d;/^$/d'

в следующем файле:

Name
John
Albert
Mora
Name
Tommy
Tammy

За один проход я хочу использовать некоторые регулярные выражения (одним из которых является удаление строки, содержащей Name, но я хочу пропустить первую строку в этом случае), чтобы получить следующее:

Name
John
Albert
Mora
Tommy
Tammy

Поскольку файл огромен, я не хочу делать несколько проходов, поэтому любые одноразовые подходы будут большими.

4b9b3361

Ответ 1

Да, вы можете применить команды sed к диапазонам строк с синтаксисом N,M. В этом случае вы хотите что-то вроде этого:

sed -e '2,$s/foo/bar/'

Пример с удалением:

sed -e '2,${ /^Name/d }'