Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

RegEx Stringanfang + Ende mit Zeilenumbruch

Frage Entwicklung Perl

Mitglied: silverspirit

silverspirit (Level 1) - Jetzt verbinden

11.09.2014, aktualisiert 12.09.2014, 1627 Aufrufe, 6 Kommentare

Hi,
ich möchte gerne folgende Strings aus einer großen Textdatei extrahieren welche so lauten:

CREATE TABLE blablba
blu
blu
;
anderer text...

Ich bekomme entweder nur die erste Zeile oder die vierte zeile zurück wenn ich den Ausdruck einzeln ausführe, füge ich beide zusammen (start und ende) kommt kein Ergebnis. Wie klappt das trotz des Zeilenumbruches ?

^CREATE ;$

Ich mache das ganze mit Windows Grep, oder auch grep in der Kommandozeile (unixtools)
Mitglied: colinardo
11.09.2014, aktualisiert um 16:13 Uhr
Moin,
z.B. so:
grep -P "^CREATE [\s\S]+?^;$" datei.txt
konnte ich gerade nur unter Linux testen ... (-edit- läuft auch unter Windows)

Grüße Uwe
Bitte warten ..
Mitglied: silverspirit
11.09.2014 um 16:32 Uhr
Danke, aber es findet irgendwie kein Ergebnis, ich mache es so:

grep -E "^CREATE [\s\S]+?^;$" san_db_test.sql
Bitte warten ..
Mitglied: colinardo
11.09.2014, aktualisiert um 16:44 Uhr
Zitat von silverspirit:

Danke, aber es findet irgendwie kein Ergebnis, ich mache es so:
grep -E "^CREATE [\s\S]+?^;$" san_db_test.sql
mit extended regex geht das obige nicht, nur mit Perl-Regex (-P)
Bitte warten ..
Mitglied: silverspirit
11.09.2014 um 20:02 Uhr
die -P funktion unterstützt mein grep aus Unixtools auf einen windows server nicht

D:\xyz\dbtmp>grep --help
Usage: grep [OPTION]... PATTERN [FILE] ...
Search for PATTERN in each FILE or standard input.
Example: grep -i 'hello world' menu.h main.c

Regexp selection and interpretation:
-E, --extended-regexp PATTERN is an extended regular expression
-F, --fixed-strings PATTERN is a set of newline-separated strings
-G, --basic-regexp PATTERN is a basic regular expression
-e, --regexp=PATTERN use PATTERN as a regular expression
-f, --file=FILE obtain PATTERN from FILE
-i, --ignore-case ignore case distinctions
-w, --word-regexp force PATTERN to match only whole words
-x, --line-regexp force PATTERN to match only whole lines
-z, --null-data a data line ends in 0 byte, not newline

die anderen optionen habe ich ausprobiert, mit selben ergebnis.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 11.09.2014, aktualisiert 12.09.2014
Nehm das grep hier, das unterstützt die Perl Extension:
http://gnuwin32.sourceforge.net/packages/grep.htm

Oder pcregrep - das normale Grep mit extended Regex hat kein Multiline-Pattern-Matching, das geht nur mit der PERL-Syntax.

Grüße Uwe

btw. du hast das ganze ja auch in der PERL-Kategorie gepostet dann besorg dir auch die richtigen Tools.
Bitte warten ..
Mitglied: silverspirit
12.09.2014 um 12:41 Uhr
mit dem verlinkten Grep hat es nun prima geklappt.
Vielen Dank hierfür !!!

Gruß
Rainer


ps, da es keine kategorie für reguläre ausdrücke gibt, dachte ich PERL dürfte am besten dafür passen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst RegEx in M3U (4)

Frage von mguenth83 zum Thema Batch & Shell ...

Ubuntu
gelöst Regex - zusammengefasste Wörter finden und korrekt trennen??? (6)

Frage von takitano zum Thema Ubuntu ...

Batch & Shell
gelöst Zeilenumbruch-Zeilen-Vorschub entfernen? (Batch) (9)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (6)

Frage von zelamedia zum Thema Internet Domänen ...

Microsoft Office
Übertrag in eine andere Tabelle (6)

Frage von charmeur zum Thema Microsoft Office ...