Как я могу получить sed для извлечения строк между двумя шаблонами, записи этих данных в файл, а затем извлечь строки между следующим диапазоном и записать этот текст в другой файл?Например, с учетом следующего ввода:
pattern_a
line1
line2
line3
pattern_b
pattern_a
line4
line5
line6
pattern_b
Я хочу, чтобы line1 line2 и line3 появлялись в одном файле, а line4 line5 и line6 появлялись в другом файле.Я не вижу способа сделать это без использования цикла и поддержания некоторого состояния между итерациями цикла, когда состояние сообщает вам, где sed должен начать поиск, чтобы снова искать шаблон запуска (pattern_a).
Например, в bash-подобном psuedocode:
while not done
if [[ first ]]; then
sed -n -e '/pattern_a/,/pattern_b/p' > $filename
else
sed -n -e '$linenumber,/pattern_b/p' > $filename
fi
linenumber = last_matched_line
filename = new_filename
Есть ли отличный способ сделать это с помощью sed?Или лучше было бы?