다음과 같은 두 개의 파일이 있습니다: file1.txt
a 2019 15
b 2019 20
파일 2.txt
a 2020 10
b 2019 15
file1의 첫 번째 열을 기준으로 file1.txt 및 diff bw 세 번째 열(file1 및 file2의)의 원하는 출력)
a 2019 5
b 2019 5
답변1
이 작업을 수행하는 코드 줄은 다음과 같습니다.
join file1.txt file2.txt | awk '{print $1,$2,$3-$5}'
이 join
명령은 먼저 다음과 같이 관련 값을 같은 줄에 배치합니다.
[gnubeard@mothership: ~/diffy]$ join file{1,2}.txt
a 2019 15 2020 10
b 2019 20 2019 15
그런 다음 awk
첫 번째 열( $1
예: a
), 두 번째 열( $2
예: 2019
), 세 번째 열의 값에서 다섯 번째 열의 값( $3-$5
예: 15 - 10
)을 뺀 값을 인쇄합니다.
결과는 원하는 출력과 일치하는 것 같습니다.
[gnubeard@mothership: ~/diffy]$ join file{1,2}.txt | awk '{print $1,$2,$3-$5}'
a 2019 5
b 2019 5