![]() |
|< 1 2 >| | ![]() |
18 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#! /usr/bin/perl
use warnings;
use strict;
my $infile = "irgendwas.txt";
my $outfile = "out.txt";
# dateien oeffnen
unless (open (IN, "<", $infile)) {
die "Error in opening '$infile': $!\n";
} # unless
unless (open (OUT, ">", $outfile)) {
die "Error in opening '$outfile': $!\n";
} # unless
# in schleife Daten einlesen; $_ enthaelt jeweils eine Zeile
while (<IN>) {
# wenn in der Zeile das Wort NOID vorkommt:
if ($_ =~ /\bNOID\b/) { # oder kuerzer: if (/\bNOID\b/) {
for my $i (1..4) { # werfe die folgenden vier zeilen weg
my $dummy = <IN>;
} # for
} # if
# sonst schreibe sie nach OUT
else {
print OUT $_;
} # else
} # while
# dateien wieder schliessen
close(IN); close(OUT);
perl -ne '$cnt=4 if /NOID/; print unless $cnt && $cnt--;' datei_alt.txt > datei_neu.txt
perl -i.bak -ne '/\bNOID\b/&&$c=4;($c-->0)||print' datei.txt
perl -i.bak -ne '/\bNOID\b/&&($c=4);($c-->0)||print' datei.txt
perl -i.bak -ne '/\bNOID\b/and$c=4;($c-->0)||print' datei.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl
use strict;
use warnings;
my $EingabeDatei = 'datei_alt.txt';
my $AusgabeDatei = 'datei_neu.txt';
open (IN, '<', $EingabeDatei) or die "Kann $EingabeDatei nicht oeffnen: $!";
open (OUT, '>', $AusgabeDatei) or die "Kann $AusgabeDatei nicht oeffnen: $!";
my $count = 0; # Anzahl zu loeschender Zeilen
while (<IN>) {
if (/NOID/) {
$count = 4; # 3 Zeilen + diese sollen nicht ausgegeben werden
}
if ($count == 0) {
print OUT; # Zeile nach OUT ausgeben
} else {
--$count; # eins weniger
}
}
![]() |
|< 1 2 >| | ![]() |
18 Einträge, 2 Seiten |