![]() |
|
|
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 |
| Sed Ajuda na actualização algo apenas em um arquivo específico. | bisla.yogender | Programação Shell Script e | 4 | 03-24-2008 11:48 |
| Para saber se o arquivo está atualizando ou não | raj333 | Programação Shell Script e | 2 | 11-05-2007 05:29 |
| Atualizando arquivo em loop | braindrain | Programação Shell Script e | 4 | 06-20-2007 02:37 |
| Porque não é meu sar actualizar o ficheiro de saída. | skneeli | UNIX & avançada para usuários experientes | 1 | 11-12-2006 08:29 |
| Atualizando um arquivo em um arquivo Zip | dbridle | AIX | 6 | 09-27-2006 04:29 |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
||||
|
awk atualizar um arquivo com outro, a comparação, a actualização
Olá,
Eu li e pesquisa através deste maravilhoso fórum e tentou diferentes abordagens, mas parece que falta algum conhecimento e neurônios ^ ^ Aqui está o que eu estou tentando alcançar: ficheiro1: teste filea 3495; teste fileb 4578; teste filec 7689; teste filey 9978; teste filez 12300; ficheiro2: teste filea 3495; teste arquivada 4578; teste filec 7689; teste filex 8978; resultados: teste filea 3495; teste arquivada 4578; teste filec 7689; teste filex 8978; teste filey 9978; teste filez 12300; em comparação com base no último campo (domínio $ 3), novos conteúdos de ficheiro2 (conteúdo aqui com "chave" 8978 é novo) deve ser adicionado ao resultado final e de conteúdo que é diferente em ficheiro2 (teste arquivada 4578; aqui) deve substituir um ficheiro1 . aqui é onde eu estou agora: awk '(key \u003d $ NF NF; chaves [key] + +) \u003d\u003d NR FNR key1 ([key] \u003d $ NF SRO; rec1 [key] \u003d $ 0 SRO; próxima key2) ([key] \u003d $ NF SRO; rec2 [key] \u003d $ 0 SRO; próxima) END (for (k em chaves) (if (key1 [k] \u003d\u003d key2 [k]) (print rec2 [k]) else (print rec1 [k]))) ' ficheiro1 $ $ ficheiro2> $ file1.updated para facilitar a leitura: awk ' NF ( key \u003d $ NF; chaves [key] + + ) NR \u003d\u003d FNR ( key1 [key] \u003d $ NF SRO; rec1 [key] \u003d $ 0 SRO; próximo ) ( key2 [key] \u003d $ NF SRO; rec2 [key] \u003d $ 0 SRO; próximo ) FIM ( para (k em chaves) ( if (key1 [k] \u003d\u003d key2 [k]) ( imprimir rec2 [k] ) diferente ( imprimir rec1 [k] ) ) ) ' ficheiro1 $ $ ficheiro2> $ file1.updated mas .. isto não funciona assim: / |
| Marcadores |
| Tags |
| solaris |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|