Unix awk匹配搜索模式并立即打印下一行';s 4th&;第五值
我想匹配第四个和第五个值的模式,如果它们匹配print Nextline的第四个和第五个值 下面是输入文件 猫 例如:我正在匹配17496和2857,如果搜索模式在一行中匹配,则需要使用awk或sed获得立即下一行的第4和第5个值 输出将是 663192857 在匹配模式的同时减少重复Unix awk匹配搜索模式并立即打印下一行';s 4th&;第五值,unix,awk,nawk,Unix,Awk,Nawk,我想匹配第四个和第五个值的模式,如果它们匹配print Nextline的第四个和第五个值 下面是输入文件 猫 例如:我正在匹配17496和2857,如果搜索模式在一行中匹配,则需要使用awk或sed获得立即下一行的第4和第5个值 输出将是 663192857 在匹配模式的同时减少重复 谢谢这很简单: lastMatched { print $4, $5; lastMatched = 0; } $4 == 17496 && $5 == 2857 { la
谢谢这很简单:
lastMatched {
print $4, $5;
lastMatched = 0;
}
$4 == 17496 && $5 == 2857 {
lastMatched = 1;
}
如果您只需要一个匹配项,并希望在之后终止,只需添加一个出口即可
awk '{if (flag==1) {print $4,$5; exit}}
{if (($4==17496)&&($5==2857)) flag=1}' inputfile
如果我看到匹配,我会升起一个标志,如果该标志升起,我会降下标志并打印数据
% awk 'p==1{p=0;print $4, $5} $4==17496&&$5==2857{p=1}' your.data
66319 2857
%
语句的顺序很关键,如果我先设置标志,然后检查它,我会为同一行打印
$4
和$5
。我只是用下面的行将其固定
nawk '/'$4' '$5'/{getline;print $4,$5}'
欢迎来到SO!请对输入文件的内容使用报价功能,以便换行符清晰可见。
% awk 'p==1{p=0;print $4, $5} $4==17496&&$5==2857{p=1}' your.data
66319 2857
%
nawk '/'$4' '$5'/{getline;print $4,$5}'