The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
espressione regolare [^] iengca Shell scripting e di programmazione 9 06-18-2008 10:45 AM
Hai bisogno di una espressione regolare tony3101 Shell scripting e di programmazione 4 06-05-2008 04:13 AM
espressione regolare e awk nickg UNIX for Dummies Domande & Risposte 2 08-16-2007 06:23 PM
Espressione regolare edog UNIX for Dummies Domande & Risposte 5 12-04-2003 02:58 PM
Espressione regolare + Aritmetical Espressione Z0mby Shell scripting e di programmazione 2 05-21-2002 11:59 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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 05-24-2007
ynixon ynixon is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2007
Interventi: 57
espressione regolare in alcune linee

Sto cercando di utilizzare espressioni regolari per identificare solo i comandi che non è la parola "tablespace" all'interno di esso. un comando inizia con "create table" e termina con; (e virgola)

file di esempio:

Codice:
create table first tablespace ;
create table second
(
  BBL_CUSTOMER_NAME      VARCHAR2(32),
a tablespace af
);
create table third
(
  BBL_CUSTOMER_NAME      VARCHAR2(32),
);
create table 
forth
(
  BBL_CUSTOMER_NAME      VARCHAR2(32) );

la partita dovrebbe essere:

Codice:
create table third
(
  BBL_CUSTOMER_NAME      VARCHAR2(32),
);
create table 
forth
(
  BBL_CUSTOMER_NAME      VARCHAR2(32) );

HELP ME

Ultimo a cura di ynixon; al 05/24/2007 12:02 PM..
  #2 (permalink)  
Old 05-24-2007
aigles's Avatar
Aigles aigles is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: aprile 2004
Località: Bordeaux, Francia
Messaggi: 1.433
Puoi provare qualcosa di simile:

Codice:
awk '
   BEGIN { 
      RS=ORS=";\n"
   }
   /create/ && ! /tablespace/ {
      sub(/^\n*/, "");
      print
   }
    ' inputfile

Jean-Pierre.
  #3 (permalink)  
Old 05-24-2007
anbu23 anbu23 is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: marzo 2006
Località: Bangalore, India
Messaggi: 1.398

Codice:
awk -v RS=";\n" -v ORS=";\n" ' !/tablespace/ ' filename

  #4 (permalink)  
Old 05-24-2007
ynixon ynixon is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2007
Interventi: 57
Vorrei provare a utilizzare solo grep
  #5 (permalink)  
Old 05-24-2007
drl's Avatar
DRL drl is offline Forum Advisor  
Utente Registrato
  
 

Iscriviti Data: aprile 2007
Località: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Interventi: 717
Salve.

Credo che grep non attraversare a capo, in modo tale che è necessario per ogni luogo i comandi su una sola riga. Vi è una nota nella mia pagina man grep su come utilizzare perl le espressioni regolari, ma che è senza documenti. Il awk e perl script possono fare uso di impostabili registrare confini.

Ecco un perl veloce:

Codice:
#!/bin/sh

# @(#) s1       Demonstrate perl quickie for unmatched string across lines.

FILE=${1-data1}

perl -wn -e 'BEGIN{$/=";"} print if not /tablespace/' $FILE

exit 0

E sul funzionamento di questo campione contenuta nel file data1:

Codice:
% ./s1

create table third
(
  BBL_CUSTOMER_NAME      VARCHAR2(32),
);
create table
forth
(
  BBL_CUSTOMER_NAME      VARCHAR2(32) );

Best wishes ... cheers, DRL
  #6 (permalink)  
Old 05-24-2007
ynixon ynixon is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2007
Interventi: 57
Citazione:
Originalmente inviato da DRL
Salve.

Credo che grep non attraversare a capo, in modo tale che è necessario per ogni luogo i comandi su una sola riga. Vi è una nota nella mia pagina man grep su come utilizzare perl le espressioni regolari, ma che è senza documenti. Il awk e perl script possono fare uso di impostabili registrare confini.

Ecco un perl veloce:

Codice:
#!/bin/sh

# @(#) s1       Demonstrate perl quickie for unmatched string across lines.

FILE=${1-data1}

perl -wn -e 'BEGIN{$/=";"} print if not /tablespace/' $FILE

exit 0

E sul funzionamento di questo campione contenuta nel file data1:

Codice:
% ./s1

create table third
(
  BBL_CUSTOMER_NAME      VARCHAR2(32),
);
create table
forth
(
  BBL_CUSTOMER_NAME      VARCHAR2(32) );

Best wishes ... cheers, DRL
semplice e pulito
  #7 (permalink)  
Old 05-24-2007
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderatore
  
 

Iscriviti Data: febbraio 2005
Località: Boston, MA
Messaggi: 5.131
Citazione:
Originalmente inviato da ynixon
Vorrei provare a utilizzare solo grep
perché?
Closed Thread

Segnalibri

Tag
regex, le espressioni regolari

« Random | Http_host »
Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 06:49 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0