The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > UNIX para Dummies Perguntas & Respostas
.
google unix.com



UNIX para Dummies Perguntas & Respostas Se não tiver certeza de onde se pode postar uma pergunta Unix ou Linux, postá-lo aqui. Todos os UNIX e Linux novatos bem vindos!

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
parar unix encontrar em uma estrutura de diretório após constatação ocorrência 1. jm0221 Programação Shell Script e 3 06-06-2008 08:19
ajudar a encontrar e substituir um arquivo no padrão dusoo Programação Shell Script e 0 05-23-2008 04:59
substituindo alguns caracteres com nova linha? Bashar Programação Shell Script e 4 05-13-2007 05:34
encontrar e substituir as linhas em branco / espaços em um arquivo Gerry405 Sun Solaris 2 07-21-2005 05:49
Shell para localizar e substituir na DG-UNIX Gerry405 UNIX para Dummies Perguntas & Respostas 3 07-12-2005 09:12

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 01-31-2008
stresing stresing is offline
Usuário
  
 

Join Date: Jan 2008
Posts: 3
Encontrar enésima ocorrência em linha e substituí-lo

Oi,

Tenho vários arquivos com dados que devem ser importados para um banco de dados. Estes arquivos contém registros com separador caracteres. Alguns registros são corruptos (2 separadores estão ausentes) e eu preciso corrigi-los antes de importá-los para o db.
Exemplo:

| campo1 | campo2 | campo3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | | |
| campo1 | campo2 | campo3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | field13 | sentir D14 | field15
| campo1 | campo2 | campo3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | field13

Os registros 1 e 2 estão corretas. Eles consistem de 15 campos opcionais separados por 15 | caracteres.
Record 3 é corrupto, uma vez que está faltando 2 personagens separador frente field13.
Deve ser semelhante a este:
| campo1 | campo2 | campo3 | field4 | field5 | field6 | field7 | field8 | field9 | field10 | field11 | field12 | | | field13

Como posso conseguir isso usando sed ou awk ou alguma outra coisa?
Qualquer ajuda é muito apreciada!

TIA,
Stephan.
  #2 (permalink)  
Old 01-31-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo (1 .. 9) ^ 2 \; | bc
  
 

Join Date: Jun 2003
Localização: Escócia
Lugares: 431
ok - não vai ganhar um prêmio de código bonita, mas,


Código:
 awk -F"|" 'NF==16{print}NF==14{OFS="|";$16=$14;$14="";print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16}' infile

obras. Com a entrada é fornecido, o que se segue é o "O" / p:


Código:
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|||
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|field13|fiel d14|field15
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|||field13

HTH,
  #3 (permalink)  
Old 01-31-2008
stresing stresing is offline
Usuário
  
 

Join Date: Jan 2008
Posts: 3
Ei, obrigado pela sua rápida resposta!

I don't care about bonita soluções - que funciona e que é importante para mim! Eu apenas testada no meu arquivo real e que é o que eu procurava!

Talvez um dia eu tenho o tempo para o cafetão declaração - mas não vou ganhar um prêmio tão bem ...

Obrigado novamente!
  #4 (permalink)  
Old 01-31-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.915
Se esse é o requisito:


Código:
awk 'NF==16||$NF=FS FS $NF' OFS="|" FS="|" filename

Utilize nawk / ou usr/xpg4/bin/awk no Solaris.
  #5 (permalink)  
Old 01-31-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo (1 .. 9) ^ 2 \; | bc
  
 

Join Date: Jun 2003
Localização: Escócia
Lugares: 431
Agora vá lá - é o que um verdadeiro guru surge com, e estou impressionado - nunca pensei nisso sneaky solução.

bom pedaço de código radoulov - Estou sempre a aprender algo novo a partir de seus posts - você da cara.
  #6 (permalink)  
Old 02-01-2008
stresing stresing is offline
Usuário
  
 

Join Date: Jan 2008
Posts: 3
Uau, isso é realmente uma bela solução. Eu nunca teria considerado que, em meu próprio - obviamente, essa é a razão para eu postar no fórum Dummies ... Obrigado!
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 08:33.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0