![]() |
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| Mesclar arquivos texto enquanto combinando os múltiplos cabeçalho / reboque registros em cada uma. | oordonez | Programação Shell Script e | 4 | 11-17-2008 11:06 |
| Qual é a sua idade? (Parte 2) | Perderabo | What's on Your Mind? | 37 | 07-20-2007 12:27 |
| Contagem N º de registros em arquivo, sem contar Header e Trailer Records | guiguy | Programação Shell Script e | 2 | 06-07-2007 12:15 |
| Ajuda comparar 2 ficheiros para encontrar registros apagados | EJA | UNIX para Dummies Perguntas & Respostas | 2 | 04-03-2007 08:53 |
| Como extrair registros duplicados associados cabeçalho recorde | run_eim | UNIX para Dummies Perguntas & Respostas | 17 | 01-16-2007 11:46 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
comparando parte do cabeçalho com a parte de registros detalhados.
Oi lá,
Lil estou confuso com o seguinte problema. Tenho um arquivo, que tem o seguinte cabeçalho: IMSHRATE_043008_101016 um registo detalhado amostra é:9820101 A982005000CAVG030108000000000000010169000MAR 2008 9820102 MAR 2008 D030108 Eu preciso comparar a parte do cabeçalho (que é destacado em vermelho e as suas letras um formato DDMMAA) com o Parte do registo detalhado (destacada em amarelo a sua fonte e também o seu formato DDMMAA). O problema é que existem milhares de tais registos pormenorizados (em uma média de 50.000 registros) em um único arquivo. Alguém pode ajudar-me a comparar os "parte do cabeçalho" com a "parte do registo detalhado" em highlightened Vermelho e Amarelo font no exemplo acima? Atenciosamente, Cmaroju |
|
||||
|
Oi,
É o amarelo secção realçada é fixado em pormenor todas as suas linhas? de qualquer forma, abaixo perl pode ajudá-lo um pouco entrada (a.txt): Código:
IMSHRATE_043008_101016 9820101 A982005000CAVG 030108 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 9820101 A982005000CAVG 030109 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 9820101 A982005000CAVG 043008 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 Código:
MSHRATE_043008_101016 9820101 A982005000CAVG 030108 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 Smaller than header 9820101 A982005000CAVG 030109 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 Bigger than header 9820101 A982005000CAVG 043008 000000000000010169000MAR 2008 9820102 MAR 2008 D030108 Equal with header Código:
open FH,"<a.txt" or die "Can not open file\n";
my @arr=<FH>;
close FH;
$arr[0]=~m/(.*)_([0-9][0-9])([0-9][0-9])([0-9][0-9])_(.*)/;
$header=$4.$2.$3;
print $arr[0];
for($i=1;$i<=$#arr;$i++){
my @temp=split(" ",$arr[$i]);
$temp[2]=~m/([0-9][0-9])([0-9][0-9])([0-9][0-9])/;
my $body=$3.$1.$2;
print $arr[$i],($body>$header)?"Bigger than header\n":($body==$header)?"Equal with header\n":"Smaller than header\n";
}
|
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|