Considera un flusso di righe di una parola come stdout di
$ echo foo bar baz quux xyxxy thud | tr ' ' '\n'
foo
bar
baz
quux
xyxxy
thud
Dico "una sola parola" per indicare che non vi è spazio bianco diverso dalle nuove righe. Vorrei "dividere in colonne" i dati compilando un numero fisso di campi (non singoli caratteri) per riga, una riga alla volta. Per piccole quantità di dati, xargs lo fa bene:
$ echo foo bar baz quux xyxxy thud | tr ' ' '\n' | xargs -n 2
foo bar
baz quux
xyxxy thud
Comunque usare xargs in questo modo è lento. Ho centinaia di gigabyte di testo da elaborare, quindi mi piacerebbe molto che il mio throughput di scrittura raggiungesse i 50 MB / s o così so che questo hardware può fare (gli xarg sopra sono ordini di grandezza più lenti.)
C'è qualcosa di meglio disponibile nella cassetta degli attrezzi standard? Posso scrivere qualcosa, se necessario, ma preferirei usare un filtro di testo che è già lì.