한 열을 다른 파일의 다른 열과 합산하는 방법은 무엇입니까?

한 열을 다른 파일의 다른 열과 합산하는 방법은 무엇입니까?

나는 이런 것을 가지고있다

파일 1:

element1,12
element2,10
element3,5

파일 2:

IN
element1,8
element3,5

file1을 수정하고 다음을 얻고 싶습니다.

element1,20
element2,10
element3,10

file2의 첫 번째 줄에는 추가하고 싶다는 의미인 "IN"이 포함되어 있습니다. "OUT"인 경우 이 값을 빼야 하며 file1은 다음과 같아야 합니다.

element1,4
element2,10
element3,0

awk, grep, sed를 사용해야 합니다. 감사합니다!

답변1

$ cat tst.awk
BEGIN { FS=OFS="," }
NR==FNR {
    if ( FNR == 1 ) {
        mult = ($1=="IN" ? 1 : -1)
    }
    else {
        add[$1] = mult * $2
    }
    next
}
{
    $2 += add[$1]
    print
}

$ awk -f tst.awk file2 file1
element1,20
element2,10
element3,10

$ awk -f tst.awk file3 file1
element1,4
element2,10
element3,0

$ head file{1..3}
==> file1 <==
element1,12
element2,10
element3,5

==> file2 <==
IN
element1,8
element3,5

==> file3 <==
OUT
element1,8
element3,5

관련 정보