ubuntu - 只有一个字符的差异
问题描述
我是 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
更改并打印总数;它还会为不是P (120) 或R (122)的任何更改打印一条消息
请注意,如果这两个文件包含任何长度不等的行(即插入或删除而不是替换),您将获得非常详细的输出,因为对齐更改将使几乎每个后续字节都变得不匹配。
推荐阅读
- node.js - 节点 - 使用 axios 执行 http 请求时收到 ECONNRESET 错误
- html - 如何在文本框中显示错误消息,除了角度 8 中的数字/数字之外的任何其他内容
- asp.net - ASP.NET Core - 在所有路由上提供 index.html 而无需重写 URL
- python - 注释 YAML 文件中现有的键值对
- racket - 如何在 Racket 的函数中重新分配变量?
- python - How to correct Python-Tensorflow has no attribute error ''getdlopenflags'?
- reactjs - 带有 React 和 Docker 的 ASP.Net Core 2.2 或 3.1 SPA
- python - Flask and Pytest - PermissionError: [WinError 32] The process cannot access the file because it is being used by another process
- cmake - Cmake support for tasking tri-core compiler toolchain
- python - Xarray 按多次运行和时间分组