Perl程序删除文件中的段

4nkexdtk  于 2023-02-16  发布在  Perl
关注(0)|答案(2)|浏览(155)

我有一个包含以下内容的文件

blah
blah blah
Zebra
Blah blah blah
Blah
Bleh
Dog
Blag 
Noblah
Someblah

我想删除斑马线和狗线中的线段。只删除斑马线先出现而狗线后出现的线段。
如何在perl脚本中实现这一点?

owfi6suc

owfi6suc1#

与如何从数组中删除元素的特定区域类似,这是触发器运算符的一个用例。

perl -ne 'print unless /Zebra/ .. /Dog/' < input-file
j2datikz

j2datikz2#

perl -ne'$r ||= /^Zebra$/; print if !$r; $r &&= !/^Dog$/;'

perl -ne'print if !( /^Zebra$/ .. /^Dog$/ );'

这些假设每个Zebra和Dogs都是成对的,并且它们不能嵌套。
参见Specifying file to process to Perl one-liner

相关问题