我的FileA
内容是:
LetterA LetterM 12
LetterB LetterC 45
LetterB LetterG 23
FileB
内容是:
LetterA 23 43 LetterZ
LetterB 21 71 LetterC
我想写原始FileA
条目加上$2-$3
ifFileB
的条目
FileA $1 = FileB $1 && FileA $2 = FileB $4
。
对于这样的输出:
LetterB LetterC 45 -50
我可以使用 bash 循环来做到这一点
while read ENTRY
do
COLUMN1=$(cut -f 1 $ENTRY)
COLUMN2=$(cut -f 2 $ENTRY)
awk -v COLUMN1="$COLUMN1" -v COLUMN2="COLUMN2" -v ENTRY="$ENTRY"
'($1==COLUMN1 && $4==COLUMN2)
{print ENTRY,$2-$3}' FileB
done < FileA
但是,这个循环太慢了。有没有办法在不循环的情况下使用 awk 来做到这一点?
获取多个输入文件 -> 匹配它们的内容 -> 打印想要的输出。