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

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

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

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

  • дата означает недопустимую дату
  • Awk: изменить строки в зависимости от следующего
  • Как напечатать строку в конце строки с помощью awk?
  • удаление первого и последнего символов каждой строки из командной строки
  • как вычесть первое значение из последнего в столбце по строке в оболочке?
  • подмножество файла для правильных хромосом
  • Хотите напечатать NULL, если значение отсутствует как выход awk
  • Поиск файлов, содержащих несколько ключевых слов в любом месте файла
  • 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 – некоторый счетчик), или …

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