The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
(sed) parsing indsætte erklæring kolonne, der krydser flere linjer jjordan Shell Programmering og Scripting 3 10-09-2007 12:23 AM
UNIX-kommando til at indsætte dobbelte anførselstegn berlin_germany Shell Programmering og Scripting 2 01-17-2007 01:07 PM
Script ikke fuldbyrde Indsæt Statement Amruta Pitkar Shell Programmering og Scripting 4 08-24-2006 11:14 PM
sql insert kommando abey Shell Programmering og Scripting 2 05-19-2006 11:56 AM
Indsæt TAB i echo erklæring sunils27 Shell Programmering og Scripting 5 08-26-2005 03:36 AM

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 05-10-2002
nattynatty nattynatty is offline
Registreret Bruger
  
 

Join Date: Apr 2002
Stillinger: 31
Unhappy awk kommandoen for INSERT erklæring

Hej,

I tider masseoverførsel data i Oracle. Problemet er, at jeg nogle gange få en INSERT statemnt sådan her ud:
INSERT INTO ALL_USER_HOTSPOT_DETAILS (USR_LOGIN, USR_LASTNAME, USR_FIRSTNAME, USR_EMAIL,
PROPERTYNR)
VALUES ( 'SABRDAG', 'D'AGOS', 'SEASONS', 'sabrina_d'agos @ sheraton.com', 70)

Jeg vil gerne køre en awk eller sed kommando, som vil tage sig af det indre prisstillelser INSERT erklæring.
Så ovenstående strengen skal være

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

Jeg har forsøgt awk men couldnt få det til at fungere. Enhver hjælp vil være værdsat.

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

Join Date: Nov 2001
Beliggenhed: Wide vågen Wylie, Texas
Posts: 535
Wow. Det er en hård en.

Jeg kom op med en Perl løsning, men vil gerne se på en mere elegant sed/awk løsning så godt.

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";
};
Eksempel på brug:

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 $
To stjerner. Joe Bob siger "Check it out"
  #3 (permalink)  
Old 05-10-2002
nattynatty nattynatty is offline
Registreret Bruger
  
 

Join Date: Apr 2002
Stillinger: 31
Hi Auswipe,

Jeg har ikke endnu ikke undersøgt din kode men prisstillelser D''AGOS er at være to enkelt citationstegn og ikke en dobbelt anførselstegn. Prøven har brugen en dobbelt anførselstegn.

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

Join Date: Aug 2001
Beliggenhed: Ashburn, Virginia
Indlæg: 9.114
Jeg er ikke sikker på, at jeg forstår præcis var, der foregår her. Men jeg tror, at du ønsker et enkelt citat omgivet af breve til at blive to enkelt anførselstegn. Hvis det er korrekt (og det synes skøre), så prøv denne ...

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  
Registreret Bruger
  
 

Join Date: Nov 2001
Beliggenhed: Wide vågen Wylie, Texas
Posts: 535
Citat:
Oprindeligt indsendt af Perderabo
Jeg er ikke sikker på, at jeg forstår præcis var, der foregår her. Men jeg tror, at du ønsker et enkelt citat omgivet af breve til at blive to enkelt anførselstegn. Hvis det er korrekt (og det synes skøre), så prøv denne ...

sed "s / \ ([a-zA-Z] \) \" \ ([a-zA-Z] \) / \ 1 \ '\' \ 2 / g "
Det er, hvad jeg gjorde galt med min sed erklæring. Jeg forsøgte at reference atomerne at jeg trukket med $ 1 og $ 2 ligesom jeg gjorde i den Perl kode. Jeg havde brug for at bruge \ 1 \ 2. D'oh.

Udskiftning af én tic med to enkelt stikker ikke vanvittigt overhovedet. Efter insertet finder sted, de to fælles karakteristika er omdannet til et enkelt tic. Det er den samme for MS SQL Server og.

Den Perl kode ovenfor, kan fastsættes ved at erstatte dobbelt anførselstegn med to enkelt prisstillelser tilbage til igen, men sed Udtrykket er meget renere.
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 05:07 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0