Разделить файл на две строки перед шаблоном

Это почти идентичный вопрос для разбиения файла на две части по шаблону, но вместо того, чтобы иметь строки до XYZ в file1 в примере file.txt :

 ABC EFG XYZ HIJ KNL 

Я хочу, чтобы XYZ был включен в file2 (но XYZ по-прежнему является шаблоном для разделения). Теперь я использую этот ответ: https://unix.stackexchange.com/a/202516/108861, а затем добавив последнюю строку из file1 в начало file2 и удалив ее из file1 , но есть ли более простая, линейное решение?

  • Разделить входной файл на X частей общего количества строк / X
  • разбиение массива и отправка значений в hashset в awk
  • разделять файл, передавать каждую часть в качестве параметра скрипту, запускать каждый скрипт параллельно
  • Программно разбивать все файлы в каталоге вдоль границ размера?
  • разбивать файл на несколько частей
  • Как разбить образ диска ddrescue и как его использовать?
  • Как эффективно разделить большой текстовый файл без разделения многострочных записей?
  • Перечислите дни рождения в том порядке, в котором они придут с сегодняшнего дня
  • 2 Solutions collect form web for “Разделить файл на две строки перед шаблоном”

    Очень легко изменить мое решение на другой вопрос. Просто удалите next :

     perl -ne 'if(/XYZ/){$a=1} ; $a==1 ? print STDERR : print STDOUT;' file >f1 2>f2; 

    Это создаст f1 со всем, вплоть до XYZ и f2 со всем остальным, включая XYZ .


    В качестве альтернативы, принятый ответ от связанного с вами вопроса уже делает в значительной степени то, что вам нужно. Он просто сохраняет XYZ в первом файле. Чтобы иметь его во втором, просто инвертируйте две команды awk :

     awk '/XYZ/{out="file2"}{print >out}; ' out=file1 file 

    Другой вариант (с sed )

     sed '/XYZ/,${ w file2 d }' file >file1 
    Interesting Posts

    Получение символических ссылок, чтобы вести себя как ярлыки в Windows

    Как прокручивать информационные страницы GNU без неожиданного перехода на следующий узел?

    Как отобразить техническую информацию о кодеках для файла FLAC?

    Хостинг нескольких веб-сайтов в Webmin

    Запуск ssh из тюрьмы chroot в SuSE

    Новая строка подсказки автоматически не помещается в командную строку после кода выхода

    Как создать сетевой интерфейс USB для передачи Интернета на телефон Android?

    Как я могу установить youtube-dl на BOSS linux?

    Установленные устройства при использовании dd для создания загрузочного образа USB-устройства

    Как работает сопоставление клавиш в Linux?

    Как определить соотношение сторон монитора?

    Описание mpack (-d) из переменной скрипта

    Работайте с setid, чтобы открыть сеанс и закрыть его правильно.

    Где и как мне создать новые общесистемные пункты меню для CentOS / RH 5?

    Как указать пространство имен при создании устройства tun / tap?

    Linux и Unix - лучшая ОС в мире.