Unix “wrap” filter

est-ce qu’il y a un?

quelque chose que je pourrais utiliser comme ceci:

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

GNU coreutils a une commande appelée fmt :

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

Edit: Comme vous pouvez le voir, fmt rompt les lignes sur les limites de mots dans la largeur donnée. Contrastez ceci avec la limite dure du fold . Le type d’indentation utilisé par fmt n’est peut-être pas ce que vous recherchez, mais vous pouvez le canaliser (sans l’option -t ) via pr pour obtenir un retrait de style de marge:

 fmt -40 lorem | pr -To 6 

Vous voudrez peut-être la commande fold .

 $ fold -w 80 file.txt 

ou

 $ cat file.txt | fold 

Vous pouvez indenter avec pr , si vous voulez, par exemple.

 $ fold -w 76 -s file.txt | pr -T --indent=4 

La commande est appelée “fold”, mais elle ne prend pas en charge l’indentation des sections de lignes enveloppées. Vous devrez vous débrouiller pour celui-là.

La commande s’appelle fold.

$ cat someFileWithLongLines.txt | plier

vous pouvez utiliser awk

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

sortie:

 $ 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