
fold
pode quebrar a linha se ela tiver mais do que uma certa quantidade de caracteres. No entanto, quero agrupar um arquivo de texto com menos de 40 caracteres em cada linha em duas colunas (80 caracteres por linha no total).
Eu quero fazer
apple
banana
(28 items omitted)
grape
guava
em
apple ...
banana ...
(12 items omitted) (12 items omitted)
... grape
... guava
Como posso fazer isso?
Responder1
Usando a opção -COLUMN
ou --columns=COLUMN
depr
-COLUMN, --columns=COLUMN
output COLUMN columns and print columns down, unless -a is used.
Balance number of lines in the columns on each page
então também
pr -t -2 yourfile
ou
pr -t --columns=2 yourfile
Por exemplo, aumentando suas entradas com algumas palavras aleatórias do dicionário,
$ cat << EOF | pr -t -2
> apple
> banana
> `shuf -n28 /usr/share/dict/words`
> grape
> guava
> EOF
apple overachieves
banana wickerwork
cottonmouths supersonic
adapter's draftiest
boudoir's insisting
cruised programs
mousetrap parcel
shticks basically
TLC's coruscates
conduction Jones
geeing Ty
gloamings bondage
investing candelabra's
radiotherapists Inchon's
clasp's grape
critters guava
Responder2
Você pode usar o columns
comando do pacote autogen, por exemplo:
columns -c 2 -w 40 --by-column < input
Por exemplo:
{
echo apple
echo banana
shuf -n28 /usr/share/dict/words
echo grape
echo guave
} |
columns -w 40 -c 2 --by-columns
Saída:
apple merwoman
banana chiroplasty
antispreading stylommatophorous
spearmint Sphaerobolaceae
sulphoxyphosphate snark
nymphaeum reactionary
ahluwalia hobo
husky oxamethane
crimeproof deltarium
cerebrosis hematoporphyrin
yoghurt noncompoundable
colloquial sororially
unaffirmed nonobjection
saccharated reundercut
thermochemic grape
preobedience guave
Responder3
Adicionando à resposta do Steeldriver, se você tiver um requisito como o meu, ou seja, imprimir palavras alternativas nas mesmas colunas, use a opção -a(across).
[user@server ~]$ cat << EOF | pr -a -t -2
> word1
> word2
> word3
> word4
> word5
> word6
> EOF
word1 word2
word3 word4
word5 word6