【问题标题】:How to find all files containing a given file?如何查找包含给定文件的所有文件?
【发布时间】:2019-06-26 22:26:04
【问题描述】:

我想查找给定目录中包含给定文件(不一定是文本文件)全部内容的所有文件。

我尝试通过使用find 和grep 来实现这个目标,但由于搜索多行而没有成功。

【问题讨论】:

  • 欢迎来到SO,很高兴您已经尝试解决您的问题,请将您的努力与代码标签中的输入和输出示例一起发布,然后让我们知道。
  • 我读到grep 无法实现多行搜索;我也许可以通过文件行上的循环来获得想要的结果。也许我可以使用sed 直接处理多行搜索(我不熟悉它)。此外,手册页指出grep 可以处理二进制文件,但据我了解,该模式必须是文本字符串;此外,在从我的文件中提取的字符串上尝试它时,我收到以下消息:grep: illegal byte sequence。我应该探索哪种可能性?
  • 请在您的帖子中发布输入样本和预期输出样本,然后让我们知道以便更好地理解问题。
  • 让a 是一个文件,其中包含从文件中提取的一个短的单行字符串。这不是文本文件;输入cat a 时,我得到?аOb?ƶ{?ـׅ。而在执行grep $(cat a) a时,结果为:grep: illegal byte sequence。

标签: bash unix grep find


【解决方案1】:

“SearchBin”是一个简单的python脚本,可以检查一个文件是否存在于其他文件中:https://github.com/Sepero/SearchBin

find . -type f -print0 | xargs -0 searchbin.py -f needle

其中needle 是要查找其内容的文件。

【讨论】:

    猜你喜欢
    • 2017-10-27
    • 2011-09-03
    • 1970-01-01
    • 2014-10-20
    • 2015-04-06
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多