Unix-фильтр - PullRequest
       7

Unix-фильтр

3 голосов
/ 24 декабря 2009

есть один?

что-то, что я мог бы использовать так:

$ cat someFileWithLongLines.txt | wrap -80 --indent|less

Ответы [ 6 ]

11 голосов
/ 24 декабря 2009

В GNU coreutils есть команда с именем fmt:

$ fmt -40 -t lorem
Lorem ipsum dolor sit amet, consectetur
   adipisicing elit, sed do eiusmod
   tempor incididunt ut labore et
   dolore magna aliqua. Ut enim
   ad minim veniam, quis nostrud
   exercitation ullamco laboris
   nisi ut aliquip ex ea commodo
   consequat. Duis aute irure dolor
   in reprehenderit in voluptate velit
   esse cillum dolore eu fugiat nulla
   pariatur. Excepteur sint occaecat
   cupidatat non proident, sunt in
   culpa qui officia deserunt mollit
   anim id est laborum.

Редактировать: Как видите, fmt разрывает линии на границах слов в пределах заданной ширины. Сравните это с жесткой границей fold. Тип отступа, который делает fmt, может не соответствовать тому, что вы ищете, но вы можете передать его (без опции -t) через pr, чтобы получить отступ в стиле поля:

fmt -40 lorem | pr -To 6
6 голосов
/ 24 декабря 2009

Возможно, вы захотите команду fold.

$ fold -w 80 file.txt

или

$ cat file.txt | fold
2 голосов
/ 24 декабря 2009

Вы можете сделать отступ с pr, если хотите, например.

$ fold -w 76 -s file.txt | pr -T --indent=4
1 голос
/ 24 декабря 2009

Команда называется Fold.

$ cat someFileWithLongLines.txt | сложите

1 голос
/ 24 декабря 2009

Команда называется 'fold', но она не поддерживает отступ в обернутых участках линий. Вам нужно будет разжечь awk за это.

0 голосов
/ 24 декабря 2009

вы можете использовать awk

width=10
awk -vw="$width" '{
    i=1
    while( length(substr($0,i,w) ) ){
        print substr($0,i,w)
        i+=w
    }
}' file

выход:

$ more file
this is a line 1
this is a line 2
$ fold -w 10 file
this is a
line 1
this is a
line 2
$ ./shell.sh
this is a
line 1
this is a
line 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...