Adiciona zeros à primeira coluna

0

Eu estou olhando para adicionar quatro zeros à primeira coluna de um arquivo csv, então:

EADUnitID,irn,EADPhysicalTechnical,AdmPublishWebNoPassword,AdmPublishWebPassword,EADUnitTitle,EADBiographyOrHistory,EADScopeAndContent,EADArrangement,EADAcquisitionInformationRef.SummaryData,EADRelatedMaterial,BibBibliographyRef_tab.SummaryData
ga.1.2.6,52144,GLS Add. GA 1/2/6,Yes,Yes,Dzöfi. ,,,,,,
ga.1.2.7,52145,GLS Add. GA 1/2/7,Yes,Yes,Dzöfi. ,,,,,,
ga.1.2.8,52146,GLS Add. GA 1/2/8,Yes,Yes,Two young girls. ,,,,,,
ga.1.2.9,52147,GLS Add. GA 1/2/9,Yes,Yes,J. Blum. ,,,,,,
ga.1.2.10,52148,GLS Add. GA 1/2/10,Yes,Yes,TsïGA.0 ,,,,,,
ga.1.2.11,52149,GLS Add. GA 1/2/11,Yes,Yes,Wupa. ,,,,,,
ga.1.2.12,52150,GLS Add. GA 1/2/12,Yes,Yes,Tochter des Bälo Laubinger. Stamm: Lowära, Pferdezigeuner. ,,,,,,
...<snip>...
ga.1.2.311,52449,GLS Add. GA 1/2/311,Yes,Yes,Beinrode 1962. Zu dunkel! ,,,,,,
ga.1.2.312,52450,GLS Add. GA 1/2/312,Yes,Yes,Bienrode 1962. Zu dunkel! ,,,,,,
ga.1.2.313,52451,GLS Add. GA 1/2/313,Yes,Yes,Bienrode 1962. Zu dunkel! ,,,,,,
ga.1.2.314,52452,GLS Add. GA 1/2/314,Yes,Yes,Lowara und Sintitsa! FrÜhjahr Bienrode 1962. ,,,,,,
ga.1.2.315,52453,GLS Add. GA 1/2/315,Yes,Yes,Madamenweg Walódza und Peabaí März 1962. Als ich die Familie photographierte, entbläßte plötzlich die Frau ihre Brust Vielleicht hätte ich nun nicht knipsen dÜrfen. Aber anderseits war das Erleben interessant. Offenbar meint die Frau mit Liege ansolchen Bildern. Georg Althaus. ,,,,,,
ga.1.2.316,52454,GLS Add. GA 1/2/316,Yes,Yes,Dzöfi. Dzöfi u. ihre schwester Rúpa gehören zur Gruppe der ungarischen Zig., mithin zu den Romzig. Sie sind also Lòwära, Pferdezig. ,,,,,,
ga.1.2.319ca,52455,GLS Add. GA 1/2/317-327,Yes,Yes,Closed to Access ,,,,,,
ga.2,52456,GLS Add. GA 2,Yes,Yes,Hanns Weltzel papers. ,,,,,,

ficaria assim:

EADUnitID,irn,EADPhysicalTechnical,AdmPublishWebNoPassword,AdmPublishWebPassword,EADUnitTitle,EADBiographyOrHistory,EADScopeAndContent,EADArrangement,EADAcquisitionInformationRef.SummaryData,EADRelatedMaterial,BibBibliographyRef_tab.SummaryData
ga.00001.00002.00006,52144,GLS Add. GA 1/2/6,Yes,Yes,Dzöfi. ,,,,,,
ga.00001.00002.00007,52145,GLS Add. GA 1/2/7,Yes,Yes,Dzöfi. ,,,,,,
ga.00001.00002.00008,52146,GLS Add. GA 1/2/8,Yes,Yes,Two young girls. ,,,,,,
ga.00001.00002.00009,52147,GLS Add. GA 1/2/9,Yes,Yes,J. Blum. ,,,,,,
ga.00001.00002.00010,52148,GLS Add. GA 1/2/10,Yes,Yes,TsïGA.0 ,,,,,,
ga.00001.00002.00011,52149,GLS Add. GA 1/2/11,Yes,Yes,Wupa. ,,,,,,
ga.00001.00002.00012,52150,GLS Add. GA 1/2/12,Yes,Yes,Tochter des Bälo Laubinger. Stamm: Lowära, Pferdezigeuner. ,,,,,,
...<snip>...
ga.00001.00002.00311,52449,GLS Add. GA 1/2/311,Yes,Yes,Beinrode 1962. Zu dunkel! ,,,,,,
ga.00001.00002.00312,52450,GLS Add. GA 1/2/312,Yes,Yes,Bienrode 1962. Zu dunkel! ,,,,,,
ga.00001.00002.00313,52451,GLS Add. GA 1/2/313,Yes,Yes,Bienrode 1962. Zu dunkel! ,,,,,,
ga.00001.00002.00314,52452,GLS Add. GA 1/2/314,Yes,Yes,Lowara und Sintitsa! FrÜhjahr Bienrode 1962. ,,,,,,
ga.00001.00002.00315,52453,GLS Add. GA 1/2/315,Yes,Yes,Madamenweg Walódza und Peabaí März 1962. Als ich die Familie photographierte, entbläßte plötzlich die Frau ihre Brust Vielleicht hätte ich nun nicht knipsen dÜrfen. Aber anderseits war das Erleben interessant. Offenbar meint die Frau mit Liege ansolchen Bildern. Georg Althaus. ,,,,,,
ga.00001.00002.00316,52454,GLS Add. GA 1/2/316,Yes,Yes,Dzöfi. Dzöfi u. ihre schwester Rúpa gehören zur Gruppe der ungarischen Zig., mithin zu den Romzig. Sie sind also Lòwära, Pferdezig. ,,,,,,
ga.00001.00002.00319ca,52455,GLS Add. GA 1/2/317-327,Yes,Yes,Closed to Access ,,,,,,
ga.00002,52456,GLS Add. GA 2,Yes,Yes,Hanns Weltzel papers. ,,,,,,

Eu tentei olhar para o gsub, gensub e printf, mas estou com uma perda de como proceder.

    
por joesch 05.10.2018 / 12:52

2 respostas

1

Sim, um pouco mais complicado. Experimente

awk -F, '
        {n=split ($1, T, "\.")
         $1 = DL = ""
         for (i=1; i<=n; i++)   {S[i] = T[i] + 0
                                 gsub (/[0-9]/, "", T[i])
                                 $1 = $1 DL (S[i]?sprintf ("%05d", S[i]):"") T[i]
                                 DL = "."
                                }
        }
1
' OFS=, file

Ele divide o primeiro campo em . na matriz T e, em seguida, percorre T , coloca os dígitos iniciais do respectivo elemento na matriz S (fazendo uso do recurso awk s para usar somente levando dígitos para aritmética), remove os dígitos iniciais (somente!) de T e recria o campo $1 .

    
por 05.10.2018 / 14:13
1

Se o Perl é uma opção

perl -F, -pe '$_ = join ",", @F if $F[0] =~ s/(\d+)/sprintf "%05d", $1/ge' file
    
por 05.10.2018 / 14:27