【发布时间】:2014-11-19 01:43:37
【问题描述】:
想打印文件名和位于目录(pwd)中的文件,都是*.gz扩展文件。
例如 Master.csv.gz 位于 /cygdrive/e/Test/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)
输出:
Name,Age,Location
abc,20,xxx
def,40,yyy
已尝试以下命令打印文件名目录且不完整
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