Как перемещать линии между шаблонами в конец файла

Я хочу переместить несколько строк в конец файла.

Пример:

1 2 3 4 5 6 blkn XYZ indf 7 8 9 10 11 lnkn ABCYDF knnfd 12 13 14 15 

Я хочу переместить строки с 6 по 11 в конец файла. Шаблоны XYZ для начальной строки и ABC* для последней строки.

Мне удалось скопировать их через awk '/XYZ/,/ABC*/ {print}' file >> file в конец файла.

Я не знаю, как переместить эти строки до конца, возможно, у некоторых из вас есть элегантное решение для этого.

One Solution collect form web for “Как перемещать линии между шаблонами в конец файла”

Вы уже довольно близки. Просто сохраните строки в некоторой переменной и используйте правило END для ее печати:

 /XYZ/, /ABC.*/ { result = result $0 RS; next } {print} END { print result } 
  • Замена строк в файлах с содержимым файла
  • Как удалить формат даты
  • В чем смысл использования нескольких восклицательных знаков в sed?
  • Как grep между словами в журнале?
  • Как извлечь XML из текстового файла
  • Поиск всех элементов массива в другом массиве?
  • Linux bash: поиск и замена в файле без выхода из строя
  • Как вставить несколько пустых строк после каждой строки
  • как печатать ближайший столбец при поиске определенных строк
  • Добавление нового столбца с использованием информации из подзаголовков
  • Дублирование каждой строки при изменении значения в каждой копии строки по-разному в Linux
  • Linux и Unix - лучшая ОС в мире.