Awk 要打印带有输出的GunZip文件名,请执行以下操作:

Awk 要打印带有输出的GunZip文件名,请执行以下操作:,awk,Awk,要打印文件名以及位于目录(pwd)中的文件,所有文件都是*.gz扩展名文件。 例如位于/cygdrive/e/Test/Master.csv.gz的Master.csv.gz和 输入文件位于不同的子目录中,如/cygdrive/f/Jan/Input_-Jan.csv.gz和/cygdrive/f/Feb/Input_-Feb.csv.gz等 以下命令在没有文件名目录的情况下工作正常: awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next}

要打印文件名以及位于目录(pwd)中的文件,所有文件都是*.gz扩展名文件。 例如位于
/cygdrive/e/Test/Master.csv.gz
Master.csv.gz
和 输入文件位于不同的子目录中,如
/cygdrive/f/Jan/Input_-Jan.csv.gz
/cygdrive/f/Feb/Input_-Feb.csv.gz

以下命令在没有文件名目录的情况下工作正常:

awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0}'  <(gzip -dc /cygdrive/e/Test/Master.csv.gz) <(gzip -dc /cygdrive/f/Jan/Input_Jan.csv.gz)
awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0}'  <(gzip -dc /cygdrive/e/Test/Master.csv.gz) <(gzip -dc /cygdrive/f/Feb/Input_Feb.csv.gz)
已尝试使用下面的命令打印文件名目录,并且已完成

awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0,FILENAME}'  <(gzip -dc /cygdrive/e/Test/Master.csv.gz) <(gzip -dc /cygdrive/f/Jan/Input_Jan.csv.gz)
awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0,FILENAME}'  <(gzip -dc /cygdrive/e/Test/Master.csv.gz) <(gzip -dc /cygdrive/f/Feb/Input_Feb.csv.gz)

awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0,$file}'  <(gzip -dc /cygdrive/e/Test/Master.csv.gz) <(gzip -dc /cygdrive/f/Jan/Input_Jan.csv.gz)
awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0,$file}'  <(gzip -dc /cygdrive/e/Test/Master.csv.gz) <(gzip -dc /cygdrive/f/Feb/Input_Feb.csv.gz)

正在寻找您的建议。

问题是awk看不到您的输入文件。它可以看到进程替换文件。所以你不能从那里得到你想要的名字

不过,这样的方法应该会奏效(代价是重复你自己)

awk'BEGIN{FS=OFS=“,”}FNR==NR{a[$2]=$0;next}($a中的2){print$0,$file}文件=/cygdrive/e/Test/Master.csv.gz
awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0,FILENAME}'  <(gzip -dc /cygdrive/e/Test/Master.csv.gz) <(gzip -dc /cygdrive/f/Jan/Input_Jan.csv.gz)
awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0,FILENAME}'  <(gzip -dc /cygdrive/e/Test/Master.csv.gz) <(gzip -dc /cygdrive/f/Feb/Input_Feb.csv.gz)

awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0,$file}'  <(gzip -dc /cygdrive/e/Test/Master.csv.gz) <(gzip -dc /cygdrive/f/Jan/Input_Jan.csv.gz)
awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0,$file}'  <(gzip -dc /cygdrive/e/Test/Master.csv.gz) <(gzip -dc /cygdrive/f/Feb/Input_Feb.csv.gz)
Name,Age,Location, FileName1,FileName2
abc,20,xxx,/cygdrive/e/Test/Master.csv.gz,/cygdrive/f/Jan/Input_Jan.csv.gz
def,40,yyy,/cygdrive/e/Test/Master.csv.gz,/cygdrive/f/Feb/Input_Feb.csv.gz
awk ' BEGIN {FS = OFS = ","} FNR==NR {a[$2] = $0; next} ($2 in a) {print $0,$file}' file=/cygdrive/e/Test/Master.csv.gz <(gzip -dc /cygdrive/e/Test/Master.csv.gz) file=/cygdrive/f/Jan/Input_Jan.csv.gz <(gzip -dc /cygdrive/f/Jan/Input_Jan.csv.gz)