Adicione 0 sempre que o valor for 12 caracteres

1

Eu extraio uma coluna de um arquivo com valores diferentes, alguns deles são 11 caracteres para 13, mas sempre que o valor é 11 eu preciso adicionar um 0 na frente.

awk -F, '{print $1 }' $FILE | \
 awk '{printf("%04d%s\n", NR, $0)}' | \
 awk '{printf("%-12s\n", $0) }'

82544990078
82544990757
899188001738
9337402002723
9337402002686
9337402002747
812153010733
852271005003
89000118359

Deveria ser assim:

082544990078
082544990757
899188001738
9337402002723
9337402002686
9337402002747
812153010733
852271005003
089000118359
    
por Rsokolov 30.12.2016 / 21:23

2 respostas

2

Você pode usar awk para isso:

$ awk 'length() == 11 { $0 = "0" $0 } 1' < input
082544990078
082544990757
899188001738
9337402002723
9337402002686
9337402002747
812153010733
852271005003
089000118359
    
por 30.12.2016 / 21:32
0

... | sed 's/^(.\{11,11\})$/0/' | ...

    
por 30.12.2016 / 21:31