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, 1539 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
PHP
gelöst Php regex und Array (5)

Frage von Thomas91 zum Thema PHP ...

Linux Tools
Mit Linux am ende einer Datei eine Leerzeile einfügen (8)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Linux Tools ...

Batch & Shell
gelöst Powershell Regex anders (1)

Frage von ukodus zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...