我有两个表,如下所示:
表格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 }'