我需要处理一个日志文件。我通过<STDIN>将其发送给Perl。我只需要输出一个摘要,它在包含几个等号的一行后面。
摘要是每日日志中的最后一部分。所以,我需要一切从行后的=s通过EOF开始。
我尝试使用带有“while”的next unless循环,但我无法让它工作。
发布于 2017-08-17 18:10:40
你需要一个或两个循环。
在输出中包括触发器行:
perl -e'
while (<>) {
last if /===/;
}
if (defined($_)) {
print;
while (<>) {
print;
}
}
' logperl -ne'print if $print ||= /===/' log在输出中不包括触发器行:
perl -e'
while (<>) {
last if /===/;
}
if (defined($_)) {
while (<>) {
print;
}
}
' logperl -ne'last if /===/; END { print while <> }' logperl -ne'print if $print; $print ||= /===/' logperl -ne'print unless 1 .. /===/' loghttps://stackoverflow.com/questions/45742178
复制相似问题