比较两个 Unix 文件之间的列值

比较两个 Unix 文件之间的列值

文件A

Table SAPSR3./1BEA/BBEA_BDH has no BasicFile LOB columns
Table SAPSR3./1BEA/BBEA_BDI has no BasicFile LOB columns
Table SAPSR3./1BEA/BBEA_DLI has no BasicFile LOB columns
Table SAPSR3./1BEA/CNPL_PDL has no BasicFile LOB columns
Table SAPSR3./1BEA/CNPL_PLH has no BasicFile LOB columns
Table SAPSR3./1BEA/CNPL_PLI has no BasicFile LOB columns
SAPSR3.RSEUMOD has more than 255 columns

文件B

SAPSR3.TERCL2
SAPSR3.TERCL3
SAPSR3.CRM_ACE_UCC
SAPSR3.CRMIOBJCONT
SAPSR3.CRMORDERCONT
SAPSR3.CRMD_WEBREQ_CONT
SAPSR3.CRMIBASECONT
SAPSR3.CRMD_UIF_SYSINDX
SAPSR3.CRMISMCONT

我需要比较 FileA 到 FileB 的第二列。如果找不到,我必须将 fileA 的整行打印到新的 fileC 中,否则(如果找到)然后将整行以及连接的字符串打印为“找到”。

同样在文件 B 中,第一列必须与文件 A 的第二列进行比较。如果没有找到,则搜索该字符串(fileB 的第一列)与“Need to be analysed”连接的结果必须打印到 fileC 中。

答案1

使用神奇的工具awk

awk 'FNR==NR{a[$2]=$3;next}{print $0,a[$2]?a[$2]:"NeedToBeAnalayzed"}' fileA fileB > fileC

相关内容