Schrift
[thread]9192[/thread]

Suchen und ersetzen: Suchen und ersetzen

Leser: 1


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Walli
 2007-07-15 22:46
#78508 #78508
User since
2004-03-26
7 Artikel
BenutzerIn
[default_avatar]
Guten Abend,

ich suche eine Möglichkeit aus einer großen Textdatei (ca.80000 Zeilen) die Zeilen mit folgendem Inhalt zu löschen:

VKORG/VTWEG 0120 03
VKORG/VTWEG 0130 01
VKORG/VTWEG 0130 03
VKORG/VTWEG 0140 01
VKORG/VTWEG 0140 03

wobei die Zahlen unterschiedlich sind, aber immer in dieser Reihenfolge, Text Leer 4 Zahlen Leer 2 Zahlen.

Mir fehlt das patternmuster.

#! /usr/bin/perl
use strict; # siehe perldoc strict
use warnings;

my $input = 'c:/wgt.txt';
my $output = 'c:/wgt_neu.txt';
my $pattern =;
my $ersatz = "";

open(IN,"<$input") or die $!;
my @lines = <IN>;
close IN;

open(WRITE,">$output") or die $!;
foreach my $line(@lines){
$line =~ s/\Q$pattern\E/$ersatz/g;
print WRITE $line;
}
close WRITE;

Kann mir bitte jemand helfen?

Danke und Gruß
Walli
Ronnie
 2007-07-15 23:02
#78509 #78509
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Sollte einzeilig gehen:
EDIT: gelöscht, siehe unten.\n\n

<!--EDIT|Ronnie|1184528182-->
Walli
 2007-07-15 23:10
#78510 #78510
User since
2004-03-26
7 Artikel
BenutzerIn
[default_avatar]
Hallo Ronnie,

danke für die schnelle Antwort.
Ich bekomme folgenden Fehler

Can't find string terminator "'" anywhere before EOF at -e line 1.
Ronnie
 2007-07-15 23:35
#78511 #78511
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Sorry, probiere es mal so:
Code: (dl )
perl -p -e "next unless /^VKORG\/VTWEG\s+\d+\s+\d+$/" file > file.new
Walli
 2007-07-15 23:40
#78512 #78512
User since
2004-03-26
7 Artikel
BenutzerIn
[default_avatar]
es kommt zwar kein Fehler, aber ersetzt wird nichts.
renee
 2007-07-16 00:09
#78513 #78513
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn einfach nur irgendwo in der Zeile die Zeichenfolge steht, dann:
Code: (dl )
perl -p -e "next unless /VKORG\/VTWEG\s+\d+\s+\d+/" file > file.new
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Walli
 2007-07-16 10:37
#78514 #78514
User since
2004-03-26
7 Artikel
BenutzerIn
[default_avatar]
es kommt kein Fehler, aber ersetzt wird nichts
renee
 2007-07-16 10:54
#78515 #78515
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
perl -n -e "print unless m!VKORG/VTWEG\s+\d+\s+\d+!" file > file.new
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Walli
 2007-07-16 11:14
#78516 #78516
User since
2004-03-26
7 Artikel
BenutzerIn
[default_avatar]
Danke, das hat geklappt.
Könntest Du mir die Zeile bitte mal erläutern?

Walli
Duff
 2007-07-16 11:28
#78517 #78517
User since
2006-10-06
283 Artikel
BenutzerIn

user image
Es wird alles aus der Datei file in die Datei file.new geschrieben, wenn nicht der match-Befehl zutrifft.
D'OH
Daniel
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2007-07-15 22:46.