我尝试解析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)
非常感谢你的帮助!
答案 0 :(得分:0)
您可以通过以下命令直接解析输出,并将结果保存到文件中。
make -n file | grep bin > result.out
如果你真的想找一个矫枉过正的awk解决方案,请按以下方式更改你的第二行:
my_lines="$(awk '/bin/ { print }' temp)"