awk 'FNR==NR { a[$1]=$3; next } ($3) in a { print $0 }' input1.txt input2.txt
该命令与普通文件一起正常工作。我需要更改多个压缩的命令" input2.txt.tar.gz'文件。
答案 0 :(得分:0)
首先提取文件,然后使用awk
,例如
tar -xvf input1.txt.tar.gz -C /tmp/
tar -xvf input2.txt.tar.gz -C /tmp/
因此,您的/tmp
目录将提取2个文件
然后
awk 'FNR==NR { a[$1]=$3; next }$3 in a' /tmp/input1.txt /tmp/input2.txt
- 编辑 -
我指的是没有提取到任何临时文件夹的压缩文件
awk 'FNR==NR { a[$1]=$3; next }
$3 in a
' <(tar --to-stdout -xf input1.tar.gz) <(tar --to-stdout -xf input2.tar.gz)
man tar
-O, --to-stdout
extract files to standard output
您也可以使用<(tar -O -xf input1.tar.gz) <(tar -O -xf input2.tar.gz)