AWK - 循环使用两个变量和AWK命令到GREP

时间:2018-04-17 15:03:14

标签: awk while-loop

以下命令基本上适用于" grep"任何包含" ASHBBBRJ02 ae5.0":

的行
awk -F'\t' '/ASHBBBRJ02\tae5.0/' temp/phase6_lsp_comparison.txt 

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

hostname1 <tab> interface1
hostname2 <tab> interface2
hostname3 <tab> interface3

以下代码无效或输出任何错误。有人能找到我的错误吗?

while IFS=$'\t' read hostname interface; do
    awk -F'\t' -v hostname="$hostname" -v interface="$interface" '/hostname\tinterface/' file2
done < file1

2 个答案:

答案 0 :(得分:1)

如果没有真正的MCVE可以查看您的脚本中的问题,但是要按照您说的尝试做的事情很难说(不需要shell循环) ):

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

答案 1 :(得分:0)

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