awk ' !f { f2[$1] = $2; next } f == 3 { f3[$1] = $2; next } f == 1 { $3 = (f2[$1] ? f2[$1] : 0) $4 = (f3[$1] ? f3[$1] : 0) $5 = $2 + f2[$1] - f3[$1] }1' FS="|" OFS="|" file2 f=3 file3 f=1 file1