Awk разделяет большой файл условно в нескольких выходных файлах

Я должен разделить файл на 90 ГБ на несколько файлов условно (файл представляет собой файл с несколькими таблицами для разделения по одной таблице).

Я создал решение в ksh и awk, что циклы в правилах таблицы и с awk выбирает, следует ли печатать в выходном файле или нет. Проблема в том, что для 29 правил я должен прочитать исходный файл (90 ГБ) 29 раз.

Можно ли писать на несколько файлов с одним чтением исходного файла, перенаправляя в том или ином случае условно?

  • что делает getline внутри awk?
  • Как сохранить разделитель полей при печати $ 0 с awk
  • Как рассчитать проценты каждого столбца?
  • Извлечение текстовой строки из файла, присвоение ее переменным, а затем их запись в другой файл?
  • Tail Grep - печать окружающих линий до тех пор, пока шаблон не будет сопоставлен
  • Как найти слово и удалить его со следующей строкой
  • Заменить текст многострочным шаблоном
  • как вычесть первое значение из последнего в столбце по строке в оболочке?
  • One Solution collect form web for “Awk разделяет большой файл условно в нескольких выходных файлах”

    Вы можете использовать перенаправление (оно задано POSIX, поэтому должно быть доступно с другими awks). Простой пример:

    $ awk '$1 % 2 {print > "odd"; next} {print > "even"}' <(seq 1 10) $ tail -n +1 odd even ==> odd <== 1 3 5 7 9 ==> even <== 2 4 6 8 10 

    Таким образом, вы можете создать массив с 29 именами файлов или построить их с помощью переменных ( print > "filenum" n , n – некоторый счетчик), или …

    Interesting Posts

    Коричневые аварии, и тогда я не могу увеличить максимальное разрешение

    Как назначить вывод cat сценария bash переменной в другом скрипте

    Установите CentOS в VirtualBox на Compact Flash и используйте его на мини-ПК

    Удаление старых значков в Gnome 3

    Bash для соответствия каталогам, имена которых начинаются с точки (периода), будучи «явным», вместо использования «shopt -s dotglob»?

    Есть ли инструмент / веб-сайт для сравнения статуса пакета в разных дистрибутивах Linux?

    Всегда ли безопасно использовать `eval echo`?

    Можете ли вы назначить произвольные привязки клавиш в xmonad?

    Как сопоставить идентификаторы жесткого диска Linux, такие как «sd 3: 0: 0: 0:», например, «ata8:»?

    Как запустить modprobe для Wi-Fi при авторизации?

    после перезагрузки сервера запуск службы без специальных символов

    Грязный COW эксплоит CVE-2016-5195

    Пример использования таймера ядра в Linux

    fsck.hfsplus не может восстановить ключи из строя

    Как подключиться к Wi-Fi на Qubes OS?

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