formato i / o com printf no bash-shell

3

Eu estou tentando mostrar os resultados do meu shell script usando printf. Para manter os resultados alinhados na coluna, estou usando a guia como:

printf "%s\t %s\t %s\t %s\t %s\t %s\t %s\n" $i $est $var_m $jk $mst $var_M  $Tes >>tmp

Mas o problema é que, em alguns casos, os resultados são pouco longos, como uma saída de, digamos,

var_M='echo "scale=8;(-1/$jk + (e(2*$jk)+1)/(e(2*$jk)-1))"|bc -l '

Então, será melhor para mim se eu puder formatar a impressão na coluna, algo como:

printf "%s *goto column 20* %s *go to column 30* " $i $est >>tmp

isso é possível?

Eu verifiquei este tópico e também as man pages, mas não conseguiu encontrá-lo. Isso é possível?

NB: Eu não tenho nenhum motivo especial para manter o printf. então qualquer outro comando adequado que possa fazer a coisa (facilmente) também é bem-vindo.

EDITAR: tentou: printf "%-2s %-8s\n" $i $est >>tmp que não está claramente funcionando:

4.0 0.17169E-02
5. 0.17156E-02
10. 0.17129E-02

(A segunda linha / segunda coluna não está alinhada, como no caso da saída formatada em lista)

    
por BaRud 13.08.2013 / 10:56

1 resposta

5

Tente isto:

printf "%-20s %-30s" $i $est >>tmp
    
por 13.08.2013 / 11:08