The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
(SED) parseren voegen verklaring kolom die kruizen meerdere lijnen jjordan Programmeren en Shell Scripting 3 10-09-2007 01:23
unix commando te voegen dubbele aanhalingstekens berlin_germany Programmeren en Shell Scripting 2 01-17-2007 01:07 PM
Script niet uitvoeren Plaats Statement Amruta Pitkar Programmeren en Shell Scripting 4 08-25-2006 12:14 AM
sql insert commando abey Programmeren en Shell Scripting 2 05-19-2006 12:56
Tabblad Invoegen in echo verklaring sunils27 Programmeren en Shell Scripting 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-10-2002
nattynatty nattynatty is offline
Geregistreerde gebruiker
  
 

Join Date: april 2002
Posts: 31
Unhappy awk commando voor INSERT verklaring

Hoi,

Ik soms bulkupload gegevens in Oracle. Het probleem is dat ik soms een INSERT statemnt als volgt uit:
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)

Ik zou graag willen lopen of een awk sed commando dat zou zorgen voor de enkele aanhalingstekens in de INSERT verklaring.
Dus de bovenstaande string dient te worden

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);

Ik heb geprobeerd awk maar couldnt doen werken. Alle hulp zou worden gewaardeerd.

Thanx
  #2 (permalink)  
Old 05-10-2002
auswipe's Avatar
auswipe auswipe is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: november 2001
Locatie: Wide Awake Wylie, Texas
Posts: 535
Wow. Dat is een moeilijke.

Ik kwam met een Perl oplossing, maar wil graag een meer elegante sed/awk oplossing ook.

Code:
#!/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";
};
Steekproef gebruik:

Code:
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 $
Twee sterren. Joe Bob zegt: "Check it out"
  #3 (permalink)  
Old 05-10-2002
nattynatty nattynatty is offline
Geregistreerde gebruiker
  
 

Join Date: april 2002
Posts: 31
Hi Auswipe,

Ik havent nog getest uw code, maar de koersen in D''AGOS wordt twee enkele aanhalingstekens en niet een dubbele aanhalingstekens. De steekproef gebruik heeft een dubbele aanhalingstekens.

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

Join Date: Aug 2001
Locatie: Ashburn, Virginia
Berichten: 9.122
Ik ben niet zeker of ik begrijp precies was er aan de hand is hier. Maar ik denk dat u een enkele quote omringd door brieven te worden twee enkelvoudige aanhalingstekens. Als dat juist is (en het lijkt gek zijn), probeer dan dit ...

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  
Geregistreerde gebruiker
  
 

Join Date: november 2001
Locatie: Wide Awake Wylie, Texas
Posts: 535
Citaat:
Oorspronkelijk geplaatst door Perderabo
Ik ben niet zeker of ik begrijp precies was er aan de hand is hier. Maar ik denk dat u een enkele quote omringd door brieven te worden twee enkelvoudige aanhalingstekens. Als dat juist is (en het lijkt gek zijn), probeer dan dit ...

sed "s / \ ([a-zA-Z] \) \ '\ ([a-zA-Z] \) / \ 1 \' \ '\ 2 / g"
Dat is wat ik deed er mis met mijn sed verklaring. Ik was een poging om te verwijzen naar de atomen dat ik trok met $ 1 en $ 2 zoals ik deed in de Perl code. Ik moest voor het gebruik van \ 1 \ 2. D'oh.

Vervanging van de ene tic met twee enkelvoudige tics is niet gek op alles. Na het invoegen plaatsvindt, zijn de twee enkelvoudige tics worden omgezet in een tic. Het is hetzelfde voor MS SQL Server als goed.

De Perl bovenstaande code kan worden vastgesteld door de vervanging van dubbel aanhalingsteken met twee enkele aanhalingstekens terug naar terug, maar de sed meningsuiting is veel schoner.
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 07:34.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0