ubuntu - 只有一个字符的差异

标签 ubuntu awk diff

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

文件 1:

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

文件 2:

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

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

我希望输出是这样的:

P
P
P
P

因为那时我会用 wc -l 或类似的东西来计算它。

最佳答案

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

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

    关于ubuntu - 只有一个字符的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56978087/

    相关文章:

    bash - 在 bash 脚本中向十六进制数字添加前导零

    diff - 如何为整个目录创建补丁来更新它?

    string - 从双引号 bash 脚本中包含的字符串中删除空格

    awk - 使用 awk 对每个唯一 ID 求和或求平均值

    linux - XCRC 命令导致 550 回复

    windows - OpenCV/VideoCapture/添加摄像头,对已有摄像头调试参数

    linux - 如何在 Linux 中比较二进制文件的前 N ​​个字节

    diff - 如何提取统一差异样式的补丁子集?

    node.js - 使用 npm 安装 Ganache 后权限被拒绝

    ubuntu - 自定义实时 Ubuntu/Lubuntu