私のFileA
コンテンツは次のとおりです。
LetterA LetterM 12
LetterB LetterC 45
LetterB LetterG 23
FileB
内容は次のとおりです。
LetterA 23 43 LetterZ
LetterB 21 71 LetterC
FileA
オリジナルのエントリとif$2-$3
からのエントリを書きたいです。
このような出力の場合: FileB
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 を使用してこれを行う方法はありますか?
複数の入力ファイルを取得するには->それらのコンテンツを一致させます->必要な出力を印刷します。