The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



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) parsing inserir declaração coluna que cruza múltiplas linhas jjordan Programação Shell Script e 3 10-09-2007 12:23
unix comando para inserir aspas berlin_germany Programação Shell Script e 2 01-17-2007 01:07
Script não executa Inserir Statement Amruta Pitkar Programação Shell Script e 4 08-24-2006 11:14
sql inserir comando abey Programação Shell Script e 2 05-19-2006 11:56
Inserir TAB em eco declaração sunils27 Programação Shell Script e 5 08-26-2005 03:36

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 05-10-2002
nattynatty nattynatty is offline
Usuário
  
 

Join Date: Apr 2002
Lugares: 31
Unhappy awk comando INSERT para declaração

Oi,

Eu às vezes upload em massa de dados em Oracle. O problema é que eu às vezes se um INSERT statemnt como este:
INSERT INTO ALL_USER_HOTSPOT_DETAILS (USR_LOGIN, USR_LASTNAME, USR_FIRSTNAME, USR_EMAIL,
PROPERTYNR)
VALUES ( 'SABRDAG', 'D'AGOS', 'SABRINA', 'sabrina_d'agos @ sheraton.com', 70)

Gostaria de executar uma ou awk sed comando que ia cuidar da única aspas na declaração INSERT.
Portanto, a seqüência acima devem ser

INSERT INTO ALL_USER_HOTSPOT_DETAILS (USR_LOGIN, USR_LASTNAME, USR_FIRSTNAME, USR_EMAIL, PROPERTYNR)
VALUES ( 'SABRDAG', 'D''AGOS', 'SABRINA', 'sabrina_d''agos @ sheraton.com', 70);

Tenho tentado awk couldnt mas fazê-la funcionar. Qualquer ajuda será apreciada.

Thanx
  #2 (permalink)  
Old 05-10-2002
auswipe's Avatar
auswipe auswipe is offline Forum Advisor  
Usuário
  
 

Join Date: Nov 2001
Localização: Wide Awake Wylie, Texas
Lugares: 535
Uau. Essa é uma dura um.

Eu vim com um Perl solução, mas gostaria de ver mais elegante sed/awk solução também.

Código:
#!/usr/bin/perl

# Auswipe - 10 May 2002
# Auswipe sez "No Guarantees!"
# Auswipe also sez "Test and Double Test! Auswipe is not responsible if anything gets franked!"

# Convert tic into double tic for contractions
# and single tic in names

open(QUERY, "query.txt") || die "$!";
open(NEWQUERY, ">query2.txt") || die "$!";

while ($inputLine = <QUERY>) {
  while ($inputLine =~ m/(\w+)'(\w+)/) {
    my $fore = $1;
    my $aft  = $2;
    $inputLine =~ s/$fore'$aft/$fore"$aft/g;
  };
  print NEWQUERY "$inputLine";
};
Exemplos de uso:

Código:
FreeBSD:joeuser:/home/joeuser/sample $ ll
total 8
-rwxr-xr-x   1 joeuser  joeuser   519 May 10 10:35 perltic
-rw-r--r--   1 joeuser  joeuser   168 May 10 10:31 query.txt
FreeBSD:joeuser:/home/joeuser/sample $ ./perltic
FreeBSD:joeuser:/home/joeuser/sample $ ll
total 10
-rwxr-xr-x   1 joeuser  joeuser   519 May 10 10:35 perltic
-rw-r--r--   1 joeuser  joeuser   168 May 10 10:31 query.txt
-rw-r--r--   1 joeuser  joeuser   168 May 10 10:38 query2.txt
FreeBSD:joeuser:/home/joeuser/sample $ cat query2.txt
NSERT INTO ALL_USER_HOTSPOT_DETAILS (USR_LOGIN,USR_LASTNAME,USR_FIRSTNAME,USR_EMAIL,
PROPERTYNR)
VALUES ('SABRDAG','D"AGOS','SABRINA','sabrina_d"agos@sheraton.com',70)
FreeBSD:joeuser:/home/joeuser/sample $
Duas estrelas. Joe Bob diz "Check it out"
  #3 (permalink)  
Old 05-10-2002
nattynatty nattynatty is offline
Usuário
  
 

Join Date: Apr 2002
Lugares: 31
Oi Auswipe,

I havent ainda testou o seu código, mas as cotações em D''AGOS está a ser dois e não um único aspas aspas duplas. A amostra tem um uso aspas.

Natty
  #4 (permalink)  
Old 05-10-2002
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Localização: Ashburn, Virginia
Mensagens: 9.115
Não tenho certeza que eu era compreender exatamente está acontecendo aqui. Mas eu acho que você quer uma única citação cercada por duas letras para se tornar único aspas. Se isso é correto (e que parece loucura), tente isso ...

sed "s / \ ([a-zA-Z] \) \ '\ ([a-zA-Z] \) / \ 1 \' \ '\ 2 / g"
  #5 (permalink)  
Old 05-10-2002
auswipe's Avatar
auswipe auswipe is offline Forum Advisor  
Usuário
  
 

Join Date: Nov 2001
Localização: Wide Awake Wylie, Texas
Lugares: 535
Citação:
Originalmente postado por Perderabo
Não tenho certeza que eu era compreender exatamente está acontecendo aqui. Mas eu acho que você quer uma única citação cercada por duas letras para se tornar único aspas. Se isso é correto (e que parece loucura), tente isso ...

sed "s / \ ([a-zA-Z] \) \ '\ ([a-zA-Z] \) / \ 1 \' \ '\ 2 / g"
Isso é o que eu estava fazendo de errado com o meu sed declaração. Eu estava tentando fazer referência aos átomos que me puxou com US $ 1 e $ 2 como eu fiz na Perl código. Eu precisava de usar \ 1 e \ 2. D'oh.

Substituir o único com dois tic único tiques não é louco de todo. Após a inserção ocorre, os dois únicos tiques são convertidos em um único tiques. É o mesmo para o MS SQL Server como bem.

O Perl código acima pode ser corrigido através da substituição de aspas duplas único com duas citações de volta para trás, mas a sed expressão é muito mais limpas.
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:52.


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