【发布时间】:2020-05-26 15:54:38
【问题描述】:
我有两个文件 A.dat 和 B.dat。
A.dat
112381550RSAP002839002C00000000020200600000110102020-05-26
112539961RSAP002839002C00000000020200700000140102020-05-26
140823748RSAP002839002C00000000020210200000050102020-05-26
110604754RSAP002839002C00000000020200600000110102020-05-26
B.dat
112381550RSAP002839002C00000000020200600000000102020-05-26
112539961RSAP002839002C00000000020200700000000102020-05-26
119A06559RSAP002839002C00000000020210100000000102020-05-26
119231672RSAP002839002C00000000020200900000000102020-05-26
118372226RSAP002839002C00000000020200800000000102020-05-26
我想根据前 22 个字符(在 BOLD 中查找 A.dat 中不存在的记录) 输出应该低于
119A06559RSAP002839002C00000000020210100000000102020-05-26 119231672RSAP002839002C00000000020200900000000102020-05-26 118372226RSAP002839002C00000000020200800000000102020-05-26尝试使用grep,如下所示
grep -Fvxf B.dat A.dat > c.dat
但没有找到只比较那部分数据的方法。
【问题讨论】:
-
欢迎来到 SO,在 SO 上,我们鼓励用户添加他们为解决自己的问题所做的努力,所以请在您的问题中添加相同的内容,然后让我们知道。
-
我尝试将您的示例包装在代码标签中,但不确定它们看起来是否正常,因此最好将您的示例包装在 CODE TAGS 中以便更好地理解。感谢您在问题中加入您的努力。
-
我会根据
awk使用下面的方法:awk '{s=substr($0,1,22)}(FNR==NR){a[s];next}!(s in a)' A.dat B.dat