Perl: Löschen mehrerer Zeilen aus text Datei mit einem bestimmten string
Ich habe eine text Datei mit Daten im unten angeführten format..
@rectype='ABC' @recname='123' @rec_id='1K2j' etc...
@rectype='DEF' @recname='matin' @rec_id='458i' etc...
@rectype='ABC' @recname='John' @rec_id='lom0' etc...
@rectype='GHI' @recname='Kalme, @rec_id='pl90' etc...
@rectype='KLM' @recname='Kitty' @rec_id='987k' etc...
@rectype='ABC' @recname='OMR' @rec_id='lo09' etc...
Nun, ich habe zum löschen aller Zeilen mit @rectype='ABC'..es gibt mehrere Linien dieser Art in der input-Datei.Es ist eine Art der dringenden und ich bin kein perl-Programmierer , ich finde es schwierig, herauszufinden, die Art und Weise.
Bitte vorschlagen!!!
HINWEIS: ich brauche, um Veränderungen in der input-Datei nur. Ich weiß nicht brauchen, erstellen Sie eine separate Ausgabedatei.
grep -v "@rectype='ABC'"
?- Ich sehe nicht, warum diese Antwort war downvoted. Es ist eine sehr einfache und elegante Lösung für das problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ausgang (gespeichert 'output.txt'):
my $output = 'input.txt'; open my $outfile, '>>', $output or die "Can't write to $output: $!";
Brauchen Sie nicht zu tun es in Perl. Sie können die
grep
tool.grep -v
bedeutet "Drucken jede Zeile, die nicht mit diesem Ausdruck."...\047ABC\047/'
$
,\
und möglicherweise andere. Bleibe ich single-quotes, und verwenden Sie'\''
wenn ich ein einziges Zitat.