Formatando o texto canalizado para lpr; adicionando margens

2

Costumo achar útil imprimir texto usando

echo 'stuff' | lpr

A saída lpr fica difícil de ler sempre que o texto é mais do que pequenos parágrafos; Então, gostaria de adicionar margens esquerda e direita ao texto. Uma simples correção de margem direita é

echo 'stuff' | fmt -w 55 | lpr

No entanto, isso não adiciona nenhuma margem à esquerda do texto.

Existe uma maneira simples de conseguir isso?

    
por Captain Giraffe 27.10.2011 / 13:20

1 resposta

1

Há também uma opção -w para fmt que define a largura máxima de uma linha e a opção -s para dividir linhas longas. O padrão para -w é 75 caracteres. Minha solução rápida seria algo semelhante a isso:

cat [stuff] | fmt -sw 50 | awk '{printf "   "$0"\n"}' | lpr

Aqui fmt limita os caracteres por linha (neste exemplo 50) e divide linhas longas automaticamente. Em seguida, essa saída é canalizada para awk , que adiciona tantos espaços quanto houver entre as primeiras aspas depois de printf e, em seguida, coloca a linha de fmt e, eventualmente, faz uma quebra de linha por "\n" .

Tenho certeza de que isso pode ser feito apenas com o awk , mas eu era tão influenciado pelo seu fmt que o mantive. Eu adicionarei um EDIT assim que eu tiver uma expressão com awk somente.

6chars

    
por cuichi 27.10.2011 / 13:59