두 테이블을 비교하고 해당 열에 대한 작업을 수행하는 셸 스크립트

두 테이블을 비교하고 해당 열에 대한 작업을 수행하는 셸 스크립트

아래와 같이 두 개의 테이블이 있습니다.

1 번 테이블

TABLE_NAME                            COUNT
------------------------------ ------------
AIN_EDP_SCRIPT                           33
AMA_CALLTYPE_LOOKUP                      24
APPLICATION_INFO                          0
ARS_PROFILE                               0
AUTHCODE                                  0
AUTHCODE_GROUP                            0
AUTHCODE_INFO                             0
AUTHO_RIZATION                            1
AUTO_RECALL_PROFILE                       0
AUTO_RECALL_PROFILE_DATA                  0
BG_REGISTERED_USER                        0
BILLING_INFO_PROFILE                     18

표 2

TABLE_NAME                            COUNT
------------------------------ ------------
AIN_EDP_SCRIPT                           23
AMA_CALLTYPE_LOOKUP                      24
APPLICATION_INFO                          0
ARS_PROFILE                               0
AUTHCODE                                  23
AUTHCODE_GROUP                            0
AUTHCODE_INFO                             0
AUTHO_RIZATION                            1
AUTO_RECALL_PROFILE                       0
AUTO_RECALL_PROFILE_DATA                  34
BG_REGISTERED_USER                        0
BILLING_INFO_PROFILE                     18

예를 들어, 테이블 1의 열 2에서 테이블 2의 열 2를 빼고 그 결과를 아래 테이블 3에 출력하려고 합니다.

표 3

TABLE_NAME (This remain same)        COUNT(Table2-Table1)
------------------------------ ------------
AIN_EDP_SCRIPT                           33
AMA_CALLTYPE_LOOKUP                      24
APPLICATION_INFO                          0
ARS_PROFILE                               0
AUTHCODE                                  0
AUTHCODE_GROUP                            0
AUTHCODE_INFO                             0
AUTHO_RIZATION                            1
AUTO_RECALL_PROFILE                       0
AUTO_RECALL_PROFILE_DATA                  0
BG_REGISTERED_USER                        0
BILLING_INFO_PROFILE                     18

Bash에서 이 작업을 수행하는 방법을 알려주실 수 있나요?

답변1

다음은 값 차이가 있는 테이블을 만드는 한 가지 방법입니다.

paste table1 table2 | awk 'NR<=2 { print $1, $2 ; next } { print $1, $4-$2 }'

(참고: 원본 파일과 동일한 형식이 되도록 하려면 printf대신 print적절한 형식 지정자를 사용하세요.)

편집: 다음은 다음을 사용하는 위 명령(조건부 연산자 사용)의 변형입니다 printf.

paste table1 table2 | awk '{ printf "%-30s %12s\n", $1, NR<=2 ? $2 : $4-$2 }'

관련 정보