【发布时间】:2016-03-16 19:16:16
【问题描述】:
我有两个从 IntexCalc 和 Intex API 生成的文件,我想比较它们的内容。我不想逐行比较。下面的示例将提供更多详细信息。
文件 1
LOSS_UNITS[\"GRPY\"]==CDR
LOSS_USERCURVE_TYPE[\"GRPY\"]==PCT_MULTIPLY
LOSS_USERCURVE_INDEX_OFFSET[\"GRPY\"]==BY_LOAN_AGE
LOSS_RATE[\"GRPY\"]==100
LOSS_NONPERF_ADV_PCT_P[\"GRPY\"]==0
LOSS_NONPERF_ADV_PCT_I[\"GRPY\"]==0
SEVERITY_USERCURVE_TYPE[\"GRPY\"]==NONE
文件 2
LOSS_USERCURVE_TYPE[\"GRPY\"]=PCT_MULTIPLY
LOSS_NONPERF_ADV_PCT_P[\"GRPY\"]=0
LOSS_UNITS[\"GRPY\"]=CDR
LOSS_NONPERF_ADV_PCT_I[\"GRPY\"]=0
SEVERITY_USERCURVE_TYPE[\"GRPY\"]=NONE
LOSS_SEVERITY[\"GRPY\"]=31.73
LOSS_USERCURVE_INDEX_OFFSET[\"GRPY\"]=BY_DEAL_AGE
-
我想比较两个文件中的
LOSS_UNITS[\"GRPY\"]标志值。在这两个文件中,无论它们在文件中的位置如何,它们在 =/== 之后的值都是相同的,因此这个标志值是相等的。 -
文件1中
LOSS_USERCURVE_INDEX_OFFSET[\"GRPY\"]的标志值为BY_LOAN_AGE,文件2中为BY_DEAL_AGE,所以这个标志值不同。 -
标志
LOSS_RATE[\"GRPY\"]仅存在于文件 1 中,所以这是一个区别 -
标志
LOSS_SEVERITY[\"GRPY\"]仅存在于文件 2 中,因此这也是一个区别。
比较这种文件结构的最佳方法或工具是什么?
【问题讨论】:
-
diff -u0 <(sort file1) <(sort file2)或comm -3 <(sort file1) <(sort file2) -
@ysth 这两个命令都很可爱,但是你需要挤一些 sed 过滤器来消除由“=”和“==”引起的差异。而且报告并不完美。
标签: string perl compare string-comparison