Я думаю, что у меня есть кое-что, что будет работать для вас, в основном я читаю в текущем файле и вывожу "измененную" версию файла минус соответствующая строка (та, которая упоминается в вопросе). Кажется, это работает для меня, когда я проверяю это. Пожалуйста, НЕ ПЫТАЙТЕСЬ, пока не сделаете резервную копию на случай, если что-то пойдет не так.
вот код, измените имя файла в соответствии с вашими потребностями, затем запустите скрипт, который "должен" работать.
Это не очень красиво, но это работает.
#!/usr/bin/perl
use strict;
use warnings;
my $in_file = "sample.txt";
my $out_file = "control.txt";
open INFILE , "<", $in_file;
open OUTFILE, ">", $out_file;
my @array;
while (<INFILE>) {
push @array, $_;
}
foreach my $line (@array) {
if ( $line =~ /(\"\[\[\s*\-f\s*\/var\/tmp\/Li\.ksh\s*\]\]\s*\&\&\s*\/var\/tmp\/Li.ksh\")/xm ) {
print "I have ommited the following line $1\n";
} else {
print OUTFILE "$line";
}
}
close INFILE;
close OUTFILE;