Matthias Leopold wrote:
hi,
Hello,
can someone please explain to me how to match patterns that contain
newlines?
/\n/ or /./s
when file.txt contains
aaa
bbb
ccc
ddd
eee
why doesn't
perl -pe 's/bbb.*?ddd//s;' file.txt
remove lines 2-4?
Because the -p switch creates a while loop that only reads one line at a
time.
$ perl -MO=Deparse -pe 's/bbb.*?ddd//s;'
LINE: while (defined($_ = <ARGV>)) {
s/bbb.*?ddd//s;
}
continue {
print $_;
}
-e syntax OK
You need to either read the whole file at once:
perl -0777pe's/bbb.*?ddd//s' file.txt
Or don't print the lines you don't want:
perl -ne'/bbb/ .. /ddd/ or print' file.txt
John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order. -- Larry Wall
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/