行间读取(perl或awk)
大家好,很抱歉在这里发布此消息,我在任何地方都找不到答案,我的解决方案也不起作用。我有一个日志文件正在以以下方式编写(不要问): 我想做的是(在perl或awk中,因为这是一个RTOS): 查看该文件,如果Variable1存在,则从Variable2开始打印等号之间的所有内容: 例如行间读取(perl或awk),perl,scripting,awk,while-loop,sh,Perl,Scripting,Awk,While Loop,Sh,大家好,很抱歉在这里发布此消息,我在任何地方都找不到答案,我的解决方案也不起作用。我有一个日志文件正在以以下方式编写(不要问): 我想做的是(在perl或awk中,因为这是一个RTOS): 查看该文件,如果Variable1存在,则从Variable2开始打印等号之间的所有内容: 例如 awk'/Mary had/{getline;getline;getline;print}' 将只打印 04-12-2011 11:37:20 SOMETHING_GOES_HERE 但我需要的是等号之间的一
awk'/Mary had/{getline;getline;getline;print}'
将只打印
04-12-2011 11:37:20 SOMETHING_GOES_HERE
但我需要的是等号之间的一切。我试图破坏一个perl脚本,但它也不起作用。有什么想法吗
好吧,这起作用了(有点) 将打印测试,但是尚未找到获得单词测试的方法(将始终是不同的单词,但单词foo将始终保留)。任何人(顺便说一句,非常感谢)
local$/=“\n=========================================================\n”;
而(){
咀嚼;
...
}
备选方案:
my $rec = '';
while (<>) {
if (!/^=============================$/) {
$rec .= $_;
next;
}
...
$rec = '';
}
my$rec='';
而(){
如果(!/^=======================================================$/){
$rec.=$\uux;
下一个
}
...
$rec='';
}
,我不完全清楚“Variable1/2”等是否为常量字符串或实际变化的量子数,但这是否有效:
if [ $(grep Variable1 $file | wc -l) -gt 0 ]; then
sed -n '/Variable2/,/=======/' $file
fi
我对
有点迷茫,如果Variable1存在,那么从Variable2开始。你能解释一下吗?我想他是想在两行之间进行匹配,比如/Variable1//Variable2/
@Geo不会打印等号之间的所有内容
如果grep-q Variable1$file;然后…
#!perl -w
use strict;
my $LOGFILE = "/home/mydir/MyTestFile";
open my $fh, "<$LOGFILE" or die("could not open log file: $!");
my $in = 0;
while(<$fh>)
{
$in = 1 if /Variable1/i;
print if($in);
$in = 0 if /Variable2/i;
}
echo "
test
hello
foo
bar" | awk '/foo/{print x};{x=$0}'
local $/ = "\n=============================\n";
while (<>) {
chomp;
...
}
my $rec = '';
while (<>) {
if (!/^=============================$/) {
$rec .= $_;
next;
}
...
$rec = '';
}
if [ $(grep Variable1 $file | wc -l) -gt 0 ]; then
sed -n '/Variable2/,/=======/' $file
fi