Это может сработать для вас (GNU sed):
sed -n '/File/,/Modify/p' file
Отключить seds normal print-каждую строку и печатать только, когда указано.Выведите диапазон строк от File
до Modify
, все остальные строки не будут напечатаны.
Более надежное решение:
sed -n '/^ File:/{N;/^Modify:/M!D;p}' file
Используйте -n
grep-likeвариант.Совпадение с конкретной строкой File:
, добавление следующей строки и сопоставление с конкретной строкой Modify:
, и если совпадение не найдено, удалите первую строку и повторите, в противном случае выведите обе строки и повторите.
NB При удалении первой строки, нормальная обработка семян не сопровождается.Поскольку пространство шаблона не является пустым, следующая строка автоматически не читается, и цикл команд начинается так, как если бы он уже был прочитан, то есть вторая строка, которая была добавлена с помощью команды N
, теперь становится первой строкой в пространстве шаблона ипервая команда, которая будет выполнена, является /^ File:/
.