Obtenha a saída de forma formatada

1

Em um loop for , estou usando o comando:

echo " Job_time is $i : Stopping the job "

Exemplo de saída:

Job_time is 6 : Stopping the job
Job_time is 6.50 : Stopping the job

Saída desejada:

Job_time is 6    : Stopping the job
Job_time is 6.50 : Stopping the job
    
por Afroz 06.05.2016 / 07:35

2 respostas

3

Em vez de echo , você pode usar printf para especificar a largura de algum campo. Para o exemplo dado, substitua

echo " Job_time is $i : Stopping the job "

com

printf ' Job_time is %-4s : Stopping the job \n' "$i"

desde que $i é aparentemente uma string com diferentes comprimentos. Se for sempre um número de ponto flutuante válido, você poderá usar um formato numérico e fazer printf mostrar zeros à direita:

printf ' Job_time is %4.2f : Stopping the job \n' "$i"

por exemplo,

Job_time is 6.00 : Stopping the job
Job_time is 6.50 : Stopping the job

Leitura adicional:

por 06.05.2016 / 10:41
-1

Sempre imprima stopping the job começando na coluna 14

for ((i=0; i<100; i++))
do
    local offset=14
    printf "%s%*s\n" "Job_time is $i" $offset ": Stopping the job"

done
    
por 06.05.2016 / 09:48