Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix awk匹配搜索模式并立即打印下一行';s 4th&;第五值_Unix_Awk_Nawk - Fatal编程技术网

Unix awk匹配搜索模式并立即打印下一行';s 4th&;第五值

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

我想匹配第四个和第五个值的模式,如果它们匹配print Nextline的第四个和第五个值

下面是输入文件

例如:我正在匹配17496和2857,如果搜索模式在一行中匹配,则需要使用awk或sed获得立即下一行的第4和第5个值

输出将是

663192857

在匹配模式的同时减少重复


谢谢

这很简单:

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}'