Рассмотрим поток строк из одного слова, таких как стандартный вывод
$ echo foo bar baz quux xyxxy thud | tr ' ' '\n'
foo
bar
baz
quux
xyxxy
thud
Я говорю "одно слово", чтобы указать, что нет никаких пробелов, кроме новых строк. Я хотел бы "колонизировать" данные, заполняя фиксированное количество полей (не одиночных символов) на строку, по одной строке за раз. Для небольших объемов данных xargs делает это красиво:
$ echo foo bar baz quux xyxxy thud | tr ' ' '\n' | xargs -n 2
foo bar
baz quux
xyxxy thud
Однако использование xargs таким способом является медленным. У меня есть сотни гигабайт текста для обработки, поэтому я очень хотел бы, чтобы моя пропускная способность записи достигла 50 МБ / с или около того, чтобы я знал, что это аппаратное обеспечение способно (xargs выше на несколько порядков медленнее).
Есть ли что-то лучшее в стандартной панели инструментов? Я могу написать что-нибудь, если нужно, но я бы предпочел использовать текстовый фильтр, который уже есть.