Como posso justificar a saída de comprimento variável?

1

Então eu não quero isso:

echo "9"
9

Preciso disso, por exemplo: 4 espaços antes dele:

MAGICK "9"
    9

Então, se eu tentar com 10:

MAGICK "10"
   10

então ele terá apenas 3 espaços antes dele. Como posso formatar minha saída dessa maneira?

    
por LanceBaynes 04.11.2011 / 04:29

3 respostas

7
$ alias MAGICK="printf '%5s\n'"
$ MAGICK 10
   10
    
por 04.11.2011 / 04:41
0

Você deve usar printf se quiser formatar a saída.

No seu exemplo acima, você pode usar 1 :

printf "\t%s\n" "9"

Onde \t é uma tabspace, %s é a string que você deseja imprimir e \n é uma nova linha.

Muitos shells têm sua própria versão de printf - verifique sua documentação para detalhes.

[1] Observação: não estou completamente claro em sua pergunta o que você está tentando realizar ...

    
por 04.11.2011 / 04:41
-1

Adaptado para saída canalizada:

alias rj='xargs printf "%$((${COLUMNS}-4))s\n"'

seq 0 $LINES | rj
    
por 14.11.2016 / 21:12