The UNIX and Linux Forums  

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
regulären Ausdruck [^] iengca Shell Programmierung und Scripting 9 06-18-2008 10:45 AM
Brauchen Sie einen regulären Ausdruck tony3101 Shell Programmierung und Scripting 4 06-05-2008 04:13 AM
Regulärer Ausdruck und awk nickg UNIX for Dummies Questions & Answers 2 08-16-2007 06:23 PM
Regular Expression edog UNIX for Dummies Questions & Answers 5 12-04-2003 02:58 PM
Regular Expression + Aritmetical Expression Z0mby Shell Programmierung und Scripting 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 05-24-2007
ynixon ynixon is offline
Registrierte Nutzer
  
 

Join Date: März 2007
Beiträge: 57
regulären Ausdruck in ein paar Zeilen

Ich versuche zu verwenden reguläre Ausdrücke, um nur die Befehle, die nicht das Wort "Tablespace" in ihr. einen Befehl beginnt mit "CREATE TABLE" und endet mit; (Semikolon)

Beispiel-Datei:

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

das Spiel sollte:

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

HELP ME

Zuletzt bearbeitet von ynixon; am 05-24-2007 12:02 PM..
  #2 (permalink)  
Old 05-24-2007
aigles's Avatar
aigles aigles is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Apr 2004
Ort: Bordeaux, Frankreich
Posts: 1433
Sie können versuchen, dass so etwas wie:

Code:
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  
Registrierte Nutzer
  
 

Join Date: März 2006
Ort: Bangalore, Indien
Posts: 1398

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

  #4 (permalink)  
Old 05-24-2007
ynixon ynixon is offline
Registrierte Nutzer
  
 

Join Date: März 2007
Beiträge: 57
Ich möchte versuchen, nur mit grep
  #5 (permalink)  
Old 05-24-2007
drl's Avatar
DRL drl is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Apr 2007
Ort: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Beiträge: 717
Hi.

Ich glaube, dass grep wird nicht durch Zeilenumbrüche, so dass Sie es brauchen, um Ihre Befehle jeweils auf einer einzigen Zeile. Es ist eine Notiz in meinem Mann grep Seite über die Verwendung von perl reguläre Ausdrücke, sondern dass es ohne Papiere. Der awk und perl Skripte nutzen können einstellbare Aufnahme Grenzen.

Hier ist eine perl quickie:

Code:
#!/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

Und läuft dies auf Ihre Probe in data1-Datei:

Code:
% ./s1

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

Mit freundlichen Grüßen ... cheers, DRL
  #6 (permalink)  
Old 05-24-2007
ynixon ynixon is offline
Registrierte Nutzer
  
 

Join Date: März 2007
Beiträge: 57
Zitat:
Zitat von DRL
Hi.

Ich glaube, dass grep wird nicht durch Zeilenumbrüche, so dass Sie es brauchen, um Ihre Befehle jeweils auf einer einzigen Zeile. Es ist eine Notiz in meinem Mann grep Seite über die Verwendung von perl reguläre Ausdrücke, sondern dass es ohne Papiere. Der awk und perl Skripte nutzen können einstellbare Aufnahme Grenzen.

Hier ist eine perl quickie:

Code:
#!/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

Und läuft dies auf Ihre Probe in data1-Datei:

Code:
% ./s1

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

Mit freundlichen Grüßen ... cheers, DRL
einfaches und sauberes
  #7 (permalink)  
Old 05-24-2007
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2005
Ort: Boston, MA
Posts: 5131
Zitat:
Zitat von ynixon
Ich möchte versuchen, nur mit grep
warum ist das so?
Closed Thread

Lesezeichen

Tags
regex, reguläre Ausdrücke

« Random | HTTP_HOST »
Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 07:01 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0