bash - 如何在 Bash 中比较多个无扩展名文件
问题描述
我是 bash shell 脚本的新手。如何比较无扩展名文件的 8 个输出(只有二进制值) - 值的长度相同,0 或 1。为了澄清事情,这就是我到目前为止所做的。
for d in */; do
find . -name base -execdir sh -c 'cat {} >> out' \;
done
我找到了位于子文件夹中的所有文件,将所有二进制文件读取并连接到输出文件中。
现在我有 8 个需要比较的输出文件(8 个父文件夹)。
我已经尝试过“diff”和“cmp” ——但它们都只适用于 2 个文件。
最后,我需要检查并验证这 8 个二进制文件之间是否存在差异,并最终导出结果并以 HEX 格式表示它们 - 例如:如果输出文件中的 2 个都是 '1' = F ,并且如果所有 '0' = 0 。因此,最终结果应该是例如:FFFF 0000(4 个第一个文件都是“1”,最后 4 个文件都是“0”)。
这样做的最佳选择是什么?- 希望我已经设法澄清我的情况。
非常感谢您的帮助。
解决方案
如果您正在查找文件列表中唯一的记录
cat $path/$files|uniq -u>/tmp/output.txt
grep -f /tmp/output.txt $path/$files
推荐阅读
- ffmpeg - 来自 OpenGL 的 WebRTC H264 视频直播流 (w FFMPEG)
- c# - ANCM 进程中启动失败
- eclipse - Java Eclipse/Maven,为 JAXB 构建依赖关系 4+ 小时
- javascript - 如何从自动完成数据源获取 ID?
- ios - 如何将多个视图控制器连接到导航控制器
- c# - 在不使用数据库或 .xml 文件的情况下存储敏感数据的最佳方法
- twilio - Twilio 出站语音决策
- python - 有没有解决方案让我的盒子 Y 值在“撞”墙后增加或减少它的高度值?
- c# - 使用 c# Mongodb 驱动程序查询和投影嵌套数组
- c++ - |错误:在 ';' 之前应为 ')' 令牌| 声明变量的疑惑