仅区分一个字符

时间:2019-07-10 20:21:38

标签: ubuntu awk diff

我是ubuntu和编码的新手。我遇到了问题,因为我有两个包含几乎相同单词的文件。它们仅相差一个字符(我希望)。我的输入是这样的文件

文件1:

AEEL00123-RA
AEEL00123-RB
AEEL00125-RA
(...)

文件2:

AEEL00123-PA
AEEL00123-PB
AEEL00125-PA
(...)

我需要仅显示P或Rs的输出,因为稍后我将计算这些差异,并且我的文件各有29000行。我需要确认有29000个差异,并且它们只是字母P或R

我希望输出如下:

P
P
P
P

因为那我可以用wc -l或类似的东西来计数。

1 个答案:

答案 0 :(得分:1)

cmp -l file1 file2 |\
awk '
    { count++ }
    !/( 12[02]){2}$/ { print "bogus change at position", $1 }
    END { print count, "total changes" }
'
  • cmp -l比较两个文件并输出任何字节差
  • awk脚本计算更改并打印总计;它还会针对未 P (120)或 R (122)
  • 的任何更改显示一条消息。

请注意,如果两个文件包含任何长度不相等的行(即,插入或删除而不是替换),您将得到非常冗长的输出,因为对齐方式更改将使几乎每个后续字节都不匹配。