Como posso quebrar o texto em duas colunas?

5

fold pode envolver a linha se tiver mais de uma certa quantidade de caracteres. No entanto, quero envolver um arquivo de texto que tenha menos de 40 caracteres em cada linha em duas colunas (80 caracteres por total de linhas).

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?

    
por Kevin Dong 23.10.2016 / 16:04

2 respostas

7

Usando a opção -COLUMN ou --columns=COLUMN de pr

-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

pr -t -2 yourfile

ou

pr -t --columns=2 yourfile


Por exemplo, aumentando suas entradas com algumas palavras de dicionário aleatórias,

$ 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
    
por 23.10.2016 / 19:05
6

Você pode usar o comando columns 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
    
por 23.10.2016 / 16:45