Portál AbcLinuxu, 11. května 2025 23:21
Řešení dotazu:
$file = "stat1.txt"; $nick = "nick xx"; open (FILE, "<$file") or die "Can't open $file: $!\n"; @lines = <FILE>; close FILE; open (STDOUT, ">$file") or die "Can't open $file: $!\n"; foreach $line ( @lines ) { print $line unless /$nick/; } close STDOUT;
Tu to maaas:
use strict;
my $file = "aaa"; # zazov suboru
my $nick = "nick xx"; # nick na vymazanie
my @lines;
open (FILE, "<$file") or die "Can't open $file: $!\n";
while(<FILE>) { push @lines,$_; }
close FILE;
open (STDOUT, ">$file") or die "Can't open $file: $!\n";
for my $line ( @lines ) {
print STDOUT $line unless($line =~ /$nick/);
}
close STDOUT;
print $line unless /$nick/;spravne to mas mat:
print STDOUT $line unless($line =~ /$nick/);
unless ($line =~ /^$nick$/)
jinak by to bralo pro nick1 i řádky nick10, nick11 atd. Takže správně takto:
#!/usr/bin/perl $file = "stat1.txt"; $nick = "nick 1"; open (FILE, "<$file") or die "Can't open $file: $!\n"; @lines = <FILE>; close FILE; open (STDOUT, ">$file") or die "Can't open $file: $!\n"; foreach $line ( @lines ) { print $line unless ($line =~ /^$nick$/); } close STDOUT;
$file = "stat1.txt"; $nick = "nick 1"; open (INFILE, "<$file") or die "Can't open $file: $!\n"; open (OUTFILE, ">$file.new") or die "Can't open $file.new: $!\n"; print OUTFILE grep $line !~ /^$nick$/, <INFILE>; close INFILE; close OUTFILE; unlink "$file"; rename "$file.new", "$file";
$file = "stat1.txt"; $nick = "nick 1"; open(STDOUT, ">${file}.part"); open(STDIN, "<$file"); print for grep !/^$nick$/, <>; rename("${file}.part",$file);
#!/usr/bin/perl $^I = "~"; $nick = "nick 6"; while (<>) { print unless /^$nick$/; }
To pak staci i
#!/usr/bin/perl $nick = "nick 6"; print grep {!/^$nick$/} <>;
#!/usr/bin/perl -n
BEGIN { $nick = pop };
/^$nick\b/ || print;
A co takhle?
perl -e '$n=pop;print grep{!/^$n\b/}<>' data.txt nick6
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.