如何避免在bash脚本中生成中间文件

如何避免在bash脚本中生成中间文件,bash,awk,output,Bash,Awk,Output,我想知道是否可以更改以下脚本,使“intermediate.tmp”不作为输出生成: 要在命令行上调用脚本,请执行以下操作: ./script.sh file1 file2 script.sh: #!/bin/bash FILE_1=$1 FILE_2=$2 awk '{print $1,$2}' $FILE_1 > intermediate.tmp awk 'NR==FNR {h[$1] = $0; next} {print $0,h[$1]}' intermediate.tmp

我想知道是否可以更改以下脚本,使“intermediate.tmp”不作为输出生成:

要在命令行上调用脚本,请执行以下操作:

./script.sh file1 file2
script.sh:

#!/bin/bash

FILE_1=$1
FILE_2=$2

awk '{print $1,$2}' $FILE_1 > intermediate.tmp

awk 'NR==FNR {h[$1] = $0; next} {print $0,h[$1]}' intermediate.tmp $FILE_2 > output.file
awk脚本本身并不重要。我只想知道如何将intermediate.tmp“feed”到第二个awk命令中,而不生成所需的output.file之外的intermediate.tmp输出文件

谢谢

awk 'NR==FNR {h[$1] = $1 OFS $2; next} {print $0,h[$1]}' "$FILE_1" "$FILE_2" > output.file
或者更不理智地说:

awk '{print $1,$2}' "$FILE_1" |
awk 'NR==FNR {h[$1] = $0; next} {print $0,h[$1]}' - "$FILE_2" > output.file

剧本的目的是什么?