【发布时间】:2011-08-01 19:15:42
【问题描述】:
我正在尝试编写一个 Bash 脚本,该脚本将通过一组目录进行缓存并对内容进行一些比较。 (对于我正在从事的项目,我想找到差异最小的两个)。
结构是有根目录;之后的两个子目录;在最多 52 个目录下(a AA b BB 等);并在其中的每一个目录下都有内容实际所在的目录。基本上:
root >> a/b >> a/AA/b/BB/.../z/ZZ >> <some hex-named directory>
所以我需要到达最后一层,然后对该目录中的文件(内容总是以相同的名称命名)和所有其他缓存文件运行 diff,并找出最相似的文件是什么。
顶部的两个目录永远不会更改名称,所以这很容易。这些目录下的目录遵循一套格式(它们从“a”和“AA”开始依次填充到“z”和“ZZ”),所以我可以为此硬编码一个数组。我认为做最后一级的最好方法是运行'ls> dirList',然后将dirList读入一个数组,并使用它进入目录,并使用相同的方法在所有其他缓存事物上通过循环运行差异算法(是的,运行时间会很糟糕,但从长远来看,它将节省大量时间)。
- 这是一个合理的方法吗?有没有更好或更有效的方法?
- 另外,有没有办法让 diff 来计算不同的行数?
我知道这有点长,但任何帮助将不胜感激。 谢谢!
【问题讨论】:
-
这是无法阅读的。请了解如何使用输入框顶部的格式化“工具”。您应该能够单击消息底部标记为“编辑”的链接。至少,请插入一些段落分隔符。此外,获得快速/有用答案的问题的一般形式是 1。我有这个输入数据,2。我想要这个输出,3。但是我得到了这个。 4.这是我正在做的,你能看到任何解决方法吗? .... 谢谢!