Schrift
[thread]10406[/thread]

Bestimmte Zeilen aus einer Text-Datei löschen?

Leser: 3


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
yasukatakaya
 2007-09-17 14:53
#99546 #99546
User since
2007-05-31
68 Artikel
BenutzerIn
[default_avatar]
Hallo,
kann mir jemand sagen, wie man bestimmte Zeilen, die mit bestimmten Kriterien anfangen komplett löscht?

Hier ist die Ergebnis-Datei aus einem Suchdurchlauf und diese will ich noch ein bisschen verfeinern!

Code: (dl )
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
Baugruppe: AATH328922

Name|DoNotRun|LowLimit|HighLimit

ICT|NO||
ProgramVariables|NO||
Variable_Eingabe_Programmer|NO||
Variable_Eingabe_Operator|NO||
Start|NO||
Artikel_Bezeichnung|NO||
Programm_Erstellt|NO||
Letzte_Aenderung|NO||
Adapter_Nummer|NO||
Programm_Nummer|NO||
Gueltig_Ab|NO||
Operator_Info|YES||
Vacuum_Select|NO||
Discharge|NO||
Ablauf_Output_APC|NO||
Ablauf_Output_Discharge|NO||
Delay|NO||
C903&_$|NO||50.000mV
C1302__$|NO||25.000mV
C1303__$|NO||5.000mV
C1304__$|NO||5.000mV
C1305__$|NO||5.000mV
C1310__$|NO||5.000mV
C1311__$|NO||5.000mV
C1312__$|NO||5.000mV
C1313__$|NO||5.000mV


Aus dem oberen Code will ich z.B. die Zeile, die mit ICT anfängt, also "ICT|NO||" löschen, dann die nächste Zeile auch, weil sie mit ProgramVariables anfängt usw.

Danke schon mal im Voraus für eure Tipps und Vorschläge!

Gruss
yasukatakaya
pq
 2007-09-17 14:58
#99547 #99547
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wenn du es dir so einfach wie möglich machen willst, benutze CPAN:Tie::File:
Code (perl): (dl )
1
2
3
4
use Tie::File;
tie my @array, 'Tie::File', 'filename' or die $!;
@array = grep { not m/^ICT/ and not m/^ProgramVariables/ } @array;
untie @array; # all finished
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2007-09-17 15:00
#99549 #99549
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl

use strict;
use warnings;
use Tie::File;

my $file = '/path/to/file.ext';
my @unwanted = qw(ICT ProgramVariables);

tie my @lines, 'Tie::File', $file or die $!;
@lines = grep{ my $i = $_; grep{$i =~ /^\Q$_\E/;}@unwanted }@lines;
untie @lines;


ungetestet...
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/
yasukatakaya
 2007-09-17 15:14
#99555 #99555
User since
2007-05-31
68 Artikel
BenutzerIn
[default_avatar]
Danke euch beiden für die super schnelle Antworten!

Ich wollte es ohne Tie::File machen, falls irgendeiner der Server davon nichts weiß!

Gruss
renee
 2007-09-17 15:18
#99556 #99556
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
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 $file = '/path/to/file.ext';
my $tmp = $file . '.tmp';
my @unwanted = qw(ICT ProgramVariables);

open my $in, '<', $file or die $!;
open my $out, '>', $tmp or die $!;

while( my $line = <$in> ){
    next if grep{ $line =~ /^\Q$_\E/ }@unwanted;
    print $out $line;
}

close $out;
close $in;

rename $tmp, $file;


ungetestet...
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/
moritz
 2007-09-17 16:03
#99560 #99560
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Tie::File ist core, davon muss jeder Server wissen ;-)
renee
 2007-09-17 16:05
#99561 #99561
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
aber erst ab 5.7.x. Auf vielen Servern läuft aber noch 5.6.1 ...
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/
moritz
 2007-09-17 16:09
#99563 #99563
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Code: (dl )
1
2
3
 $ corelist Tie::File

Tie::File was first released with perl 5.007003
renee
 2007-09-17 16:26
#99564 #99564
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
sag ich doch...
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/
moritz
 2007-09-17 19:26
#99572 #99572
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
ach so, ich dachte 5.007 wäre 5.0irgendwas, nicht 5.7.
Hab ich wieder was gelernt...
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2007-09-17 14:53.