我需要处理一个日志文件。我通过<STDIN>
将其发送给Perl。我只需要输出摘要,该摘要跟随包含多个等号的行。
摘要是每日日志中的最后一位。所以,我需要从=
到EOF之后的所有行开始。
我尝试使用带有“while
”的next unless
循环,但我无法让它工作。
答案 0 :(得分:3)
你需要一个或两个循环。
在输出中包含触发线:
perl -e'
while (<>) {
last if /===/;
}
if (defined($_)) {
print;
while (<>) {
print;
}
}
' log
perl -ne'print if $print ||= /===/' log
不在输出中包含触发线:
perl -e'
while (<>) {
last if /===/;
}
if (defined($_)) {
while (<>) {
print;
}
}
' log
perl -ne'last if /===/; END { print while <> }' log
perl -ne'print if $print; $print ||= /===/' log
perl -ne'print unless 1 .. /===/' log