Remove todos os zeros à esquerda em uma string somente para a primeira coluna

0

Eu tenho um arquivo delimitado por pipe e, para associá-lo a um arquivo correspondente, preciso remover os zeros à esquerda da primeira coluna, mas não de outras colunas no arquivo.

A estrutura é assim:

GA.01.02.070|GLS Add. GA 1/2/70|Wohl: Wagon d. Kelderära. ||||||
GA.01.02.071|GLS Add. GA 1/2/71|Tsä der Kelderära. Roßlau, 1935. ||||||
GA.01.02.072|GLS Add. GA 1/2/72|Rómni der Kelderära. ||||||
GA.01.02.073|GLS Add. GA 1/2/73|Wagen des Mets. Roßlau/ 1934. ||||||
GA.01.02.074|GLS Add. GA 1/2/74|Kastanja Ansin. ||||||
GA.01.02.075|GLS Add. GA 1/2/75|Raupa Ansin. ||||||

e minha saída desejada seria:

GA.1.2.70|GLS Add. GA 1/2/70|Wohl: Wagon d. Kelderära. ||||||
GA.1.2.71|GLS Add. GA 1/2/71|Tsä der Kelderära. Roßlau, 1935. ||||||
GA.1.2.72|GLS Add. GA 1/2/72|Rómni der Kelderära. ||||||
GA.1.2.73|GLS Add. GA 1/2/73|Wagen des Mets. Roßlau/ 1934. ||||||
GA.1.2.74|GLS Add. GA 1/2/74|Kastanja Ansin. ||||||
GA.1.2.75|GLS Add. GA 1/2/75|Raupa Ansin. ||||||

Consegui encontrar maneiras de usar o sed para remover o primeiro zero ou zeros iniciais, mas não encontrei uma maneira de remover apenas os zeros à esquerda antes do primeiro cano.

    
por joesch 04.10.2018 / 11:19

1 resposta

1

Se sed não for um requisito estrito, veja um script AWK que fará o seguinte:

awk -F\| 'BEGIN { OFS = FS } { gsub("\.0+", ".", $1); print }'

Isso divide os registros em | , usando isso na saída também; para cada registro, ele substitui . seguido por um ou mais 0 por . no primeiro campo e, em seguida, gera o registro completo.

    
por 04.10.2018 / 11:28