Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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
AWK-带有两个变量的While循环和指向GREP的AWK命令_Awk_While Loop - Fatal编程技术网

AWK-带有两个变量的While循环和指向GREP的AWK命令

AWK-带有两个变量的While循环和指向GREP的AWK命令,awk,while-loop,Awk,While Loop,下面的命令基本上用于“grep”任何包含“ashbbrj02 ae5.0”的行: 我想读取一个文件,其中包含以下格式的类似字符串列表: hostname1 <tab> interface1 hostname2 <tab> interface2 hostname3 <tab> interface3 主机名1接口1 主机名2接口2 主机名3接口3 下面的代码不工作或不输出任何错误。有人能发现我的错误吗 while IFS=$'\t' read hostname

下面的命令基本上用于“grep”任何包含“ashbbrj02 ae5.0”的行:

我想读取一个文件,其中包含以下格式的类似字符串列表:

hostname1 <tab> interface1
hostname2 <tab> interface2
hostname3 <tab> interface3
主机名1接口1
主机名2接口2
主机名3接口3
下面的代码不工作或不输出任何错误。有人能发现我的错误吗

while IFS=$'\t' read hostname interface; do
    awk -F'\t' -v hostname="$hostname" -v interface="$interface" '/hostname\tinterface/' file2
done < file1
而IFS=$'\t'读取主机名接口;做
awk-F'\t'-v hostname=“$hostname”-v interface=“$interface””/hostname\tinterface/“文件2
完成<文件1

如果没有实际的代码,很难判断脚本中的问题是什么,但如果要执行您所说的操作,则可能需要执行以下操作(不需要shell循环):


我发现了一个输入文件没有被标记的问题,并意识到我对另一个文件运行了echo测试。很抱歉,谢谢您的代码建议。

更改为
$0~主机名“\t”接口
,您也不需要设置
FS
。仍然不工作,我可以回显我尝试匹配的两个字段:
而IFS=$'\t'读取主机名接口preutil postil criticality;do echo-e“$hostname\t$interface\t$postitil”>>temp/phase8\u post\u interface\u lsps.txt awk-F'\t'-v hostname=“$hostname”-v interface=“$interface””$0~hostname“\t”接口“temp/phase3\u post\u hops\u bitrate.txt done
您的输入文件是否真的像您在示例中所说的那样,在每个
字符前后都有一个空白字符?请将您的问题以简洁、可测试的示例输入和预期输出显示出来。
while IFS=$'\t' read hostname interface; do
    awk -F'\t' -v hostname="$hostname" -v interface="$interface" '/hostname\tinterface/' file2
done < file1
awk '
BEGIN { FS="\t" }
NR==FNR {
    regexps[$1 FS $2]
    next
}
{
    for (regexp in regexps) {
        if ($0 ~ regexp) {
            print
            next
        }
    }
}
' temp/phase7_interfaces.txt temp/phase3_post_hops_bitrate.txt