The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
(sed) parsning infoga uttalande kolumnen som finns på flera linjer jjordan Shell-programmering och Skript 3 10-09-2007 01:23
UNIX-kommandot för att infoga citationstecken berlin_germany Shell-programmering och Skript 2 01-17-2007 01:07
Script inte verkställa Sätt Statement Amruta Pitkar Shell-programmering och Skript 4 08-25-2006 12:14
sql infoga kommandot abey Shell-programmering och Skript 2 05-19-2006 12:56
Sätt TAB i eko uttalande sunils27 Shell-programmering och Skript 5 08-26-2005 04: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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-10-2002
nattynatty nattynatty is offline
Registered User
  
 

Join Date: april 2002
Inlägg: 31
Unhappy awk kommando för INSERT uttalande

Hej,

Jag ibland massuppläggning data i Oracle. Problemet är att jag ibland får en INSERT statemnt så här:
Infoga i ALL_USER_HOTSPOT_DETAILS (USR_LOGIN, USR_LASTNAME, USR_FIRSTNAME, USR_EMAIL,
PROPERTYNR)
VALUES ( "SABRDAG", "D'AGOS", "SEASONS", "sabrina_d'agos @ sheraton.com", 70)

Jag skulle vilja köra en awk eller sed kommando som skulle ta hand om enkla citationstecken i INSERT uttalande.
Så ovanstående strängen bör

Infoga i ALL_USER_HOTSPOT_DETAILS (USR_LOGIN, USR_LASTNAME, USR_FIRSTNAME, USR_EMAIL, PROPERTYNR)
VALUES ( "SABRDAG", "D''AGOS", "SEASONS", "sabrina_d''agos @ sheraton.com", 70);

Jag har försökt awk men couldnt få det att fungera. All hjälp skulle uppskattas.

Thanx
  #2 (permalänk)  
Old 05-10-2002
auswipe's Avatar
auswipe auswipe is offline Forum Advisor  
Registered User
  
 

Join Date: Nov 2001
Ort: Wide Awake Wylie, Texas
Inlägg: 535
Wow. Det är en tuff en.

Jag kom med ett Perl lösning, men skulle vilja se en mer elegant sed/awk lösning också.

Kod:
#!/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";
};
Exempel:

Kod:
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 $
Två stjärnor. Joe Bob säger "Check it out"
  #3 (permalänk)  
Old 05-10-2002
nattynatty nattynatty is offline
Registered User
  
 

Join Date: april 2002
Inlägg: 31
Hej Auswipe,

Jag har icke ändå testat koden utan citattecken i D''AGOS ska två enkla citationstecken och inte ett dubbla citattecken. Provet användning har ett citationstecken.

BEHÄNDIG
  #4 (permalänk)  
Old 05-10-2002
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Ort: Ashburn, Virginia
Inlägg: 9.119
Jag är inte säker på att jag förstår precis var som händer här. Men jag tror att du vill att någon enda anbud omgiven av bokstäver att bli två enkla citationstecken. Om det är korrekt (och det verkar galet), prova det här ...

sed "s / \ ([a-zA-Z] \) \" \ ([a-zA-Z] \) / \ 1 \ "\" \ 2 / g "
  #5 (permalänk)  
Old 05-10-2002
auswipe's Avatar
auswipe auswipe is offline Forum Advisor  
Registered User
  
 

Join Date: Nov 2001
Ort: Wide Awake Wylie, Texas
Inlägg: 535
Citat:
Ursprungligen postat av Perderabo
Jag är inte säker på att jag förstår precis var som händer här. Men jag tror att du vill att någon enda anbud omgiven av bokstäver att bli två enkla citationstecken. Om det är korrekt (och det verkar galet), prova det här ...

sed "s / \ ([a-zA-Z] \) \" \ ([a-zA-Z] \) / \ 1 \ "\" \ 2 / g "
Det är vad jag gjorde för fel på min sed uttalande. Jag försökte hänvisning atomerna att jag drog med $ 1 och $ 2 som jag gjorde i Perl kod. Jag behövde använda \ 1 \ 2. D'oh.

Byte av inre Tic med två enda tics är inte tokig alls. Efter infoga sker, de två enda tics omvandlas till en enda Tic. Det är samma för MS SQL Server och.

Den Perl Koden ovan kan fastställas genom att ersätta dubbla citattecken med två enkla citationstecken back to back, men sed uttrycket är mycket renare.
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 10:52.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0