防止awk处理变量内容?

时间:2017-11-29 04:44:25

标签: bash parsing awk

我尝试解析make -n输出以确保只调用我想调用的程序。但是,awk尝试解释输出的内容并运行(?)它。错误类似awk: fatal: Cannot find file 'make'。我通过将输出保存为临时文件然后将其读入awk来解决这个问题。但是,我确信有更好的方法;有什么建议吗?

编辑:我稍后在我的脚本中使用输出,并希望尽可能避免保存文件以提高速度。

这里有什么不起作用:

my_input=$(make -n file)
my_lines=$(echo $my_input | awk '/bin/ { print $1 }') #also tried printf and cat

这里有什么效果,但显然需要更长的时间,因为写了文件:

make -n file > temp
my_lines=$(awk '/bin/ { print $1 }' temp) 

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您可以通过以下命令直接解析输出,并将结果保存到文件中。

make -n file | grep bin > result.out

如果你真的想找一个矫枉过正的awk解决方案,请按以下方式更改你的第二行:

my_lines="$(awk '/bin/ { print }' temp)"