如何使用bash变量作为awk输入文件 在BASH脚本中间有一行AWK会引发错误,我不知道如何修复。

如何使用bash变量作为awk输入文件 在BASH脚本中间有一行AWK会引发错误,我不知道如何修复。,bash,awk,Bash,Awk,以下是一个简化的示例: #!/bin/bash filename=$(find -L . | grep file.txt.gz | awk '{printf "<(gunzip -c %s)", $1}' ) awk '{print $1}' ${filename} #/bin/bash filename=$(从awk手册页中查找-L.| grep file.txt.gz | awk'{printf': 因此,如果您通过 awk -v P1="$1&quo

以下是一个简化的示例:

#!/bin/bash
filename=$(find -L . | grep file.txt.gz | awk '{printf "<(gunzip -c %s)", $1}' )
awk '{print $1}' ${filename} 
#/bin/bash
filename=$(从awk手册页中查找-L.| grep file.txt.gz | awk'{printf':

因此,如果您通过

awk -v P1="$1" '{printf "<(gunzip -c %s)", P1}'

awk-vp1=“$1”{printf”您是否尝试执行类似于
find-L.-name'file.txt.gz'-exec gunzip-c{}+|awk'{print$1}的操作“
?@oguzismail不完全正确,我试图让awk将txt和txt.gz文件放在一行中。我没有发布完整的脚本,因此可能会混淆。在我看来,执行的逻辑一点也不合理。@oguzismail方法似乎更符合逻辑,但这并没有解决问题。在什么方面?@theronless:这是一个错误o演示如何传递参数。$1 inline应该是从grep输出的,而不是bash变量。如果您描述了脚本应该做什么,可能会有所帮助。
   -v var=val
   --assign var=val
         Assign the value val to the variable var, before execution  of  the
         program  begins. 
awk -v P1="$1" '{printf "<(gunzip -c %s)", P1}'