
fold
может переносить строку, если она содержит больше определенного количества символов. Однако я хочу переносить текстовый файл, который содержит менее 40 символов в каждой строке, в два столбца (всего 80 символов в строке).
я хочу сделать
apple
banana
(28 items omitted)
grape
guava
в
apple ...
banana ...
(12 items omitted) (12 items omitted)
... grape
... guava
Как мне это сделать?
решение1
Используя опцию -COLUMN
или--columns=COLUMN
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
так что либо
pr -t -2 yourfile
или
pr -t --columns=2 yourfile
Например, дополняя свои записи некоторыми случайными словарными словами,
$ 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
решение2
Вы можете использовать columns
команду из пакета autogen, например:
columns -c 2 -w 40 --by-column < input
Например:
{
echo apple
echo banana
shuf -n28 /usr/share/dict/words
echo grape
echo guave
} |
columns -w 40 -c 2 --by-columns
Выход:
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
решение3
В дополнение к ответу Steeldriver: если у вас есть требование, подобное моему, например, для печати альтернативных слов в тех же столбцах, используйте опцию -a(across).
[user@server ~]$ cat << EOF | pr -a -t -2
> word1
> word2
> word3
> word4
> word5
> word6
> EOF
word1 word2
word3 word4
word5 word6