我正在尝试 grep 查找表达式之间的文本(例如BEGIN
and END
) 可能与以下内容不在同一行:
perl -wln -e 'm/BEGIN.+END/s and print;' < file.txt
请注意,由于s
修饰符(在m/RE/s
), "."
允许匹配换行符(以及其他任何内容)。
这使得模式可以将特定顺序的单词与它们之间的任何内容进行匹配(即模式BEGIN
图案在一行上END
位于下面几行)。
如果两个模式位于同一行,则效果很好,但当它跨越多行时则不行。我在这里缺少什么?
事实上我确实找到了缺失的部分!我需要使用-0777
选项可以搜索记录中的整个文件并使用打印匹配的表达式print $&
反而:
perl -wln -0777 -e 'm/BEGIN.+END/s and print $&;' < file.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)