
아래와 같은 두 개의 파일이 있습니다: file1.txt
a 2019 15
b 2019 20
파일2.txt
a 2020 10
b 2019 15
file1.txt 및 diff의 원하는 출력 내용 세 번째 열(file1 및 file2에서) 파일 1의 첫 번째 열에 대해)
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
, eg a
), 두 번째 열( $2
, eg 2019
), 3번째 열의 값에서 5번째 열의 값( $3-$5
, eg 15 - 10
.) 을 뺀 값을 인쇄합니다.
결과는 원하는 출력과 일치하는 것으로 나타납니다.
[gnubeard@mothership: ~/diffy]$ join file{1,2}.txt | awk '{print $1,$2,$3-$5}'
a 2019 5
b 2019 5