当前位置: 首页 > 面试题库 >

Linux命令:如何仅查找文本文件?

郝昊天
2023-03-14
问题内容

经过Google的几次搜索后,我想到的是:

find my_folder -type f -exec grep -l "needle text" {} \; -exec file {} \; | grep text

这非常不方便,并且会输出不需要的文本,例如mime类型信息。有更好的解决方案吗?我在同一文件夹中有很多图像和其他二进制文件,还有很多文本文件需要搜索。


问题答案:

我知道这是一个旧线程,但是我偶然发现了它,并认为我会分享我的方法,我发现这是一种非常快速的方法,可find用于仅查找非二进制文件:

find . -type f -exec grep -Iq . {} \; -print

-Igrep
的选项告诉它立即忽略二进制文件,而.连同的选项-q会使它立即与文本文件匹配,因此运行非常快。如果您担心空格,可以将其更改-print-print0用于管道到xargs -0或之类的东西(感谢小费,@ lucas.werkmeister!)

同样,仅对于某些BSD版本(find例如在OS X上)而言,第一个点才是必需的,但是如果您希望始终将其放置在别名或其他内容中,则不会一直伤害任何内容。

编辑 :正如@ruslan正确指出的那样,-and可以隐式使用。



 类似资料:
  • less 命令的作用和 more 十分类似,都用来浏览文本文件中的内容,不同之处在于,使用 more 命令浏览文件内容时,只能不断向后翻看,而使用 less 命令浏览,既可以向后翻看,也可以向前翻看。 不仅如此,为了方面用户浏览文本内容,less 命令还提供了以下几个功能: 使用光标键可以在文本文件中前后(左后)滚屏; 用行号或百分比作为书签浏览文件; 提供更加友好的检索、高亮显示等操作; 兼容常

  • 本文向大家介绍查看linux文件的命令详解,包括了查看linux文件的命令详解的使用技巧和注意事项,需要的朋友参考一下 怎么查看linux文件 查看文件内容的命令: cat 由第一行开始显示内容,并将所有内容输出 tac 从最后一行倒序显示内容,并将所有内容输出 more 根据窗口大小,一页一页的现实文件内容 less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符 head 只显示头

  • 我创建了一个扫描器,从命令行中的第一个元素读取文本文件,但它会导致。如何将其格式化为接受此文件的位置? 下面是我的代码: 例如,如果文件名是,我将作为命令行中的第一个元素。

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我试图找到一种方法来扫描我的整个Linux系统,以查找包含特定文本字符串的所有文件。只是为了澄清,我正在文件中寻找文本,而不是在文件名中寻找文本。 当我查找如何执行此操作时,我两次遇到此解决方案: 但是,它不起作用。似乎显示了系统中的每个文件。 这接近正确的方法吗?如果没

  • 通过学习 cd 和 pwd 命令,相信读者已经能够在庞大的 Linux 文件系统中,随心所欲地游荡并确定自己所在的位置了。本节继续来学习,如何知道某目录中存放了哪些文件或子目录。 ls 命令,list 的缩写,是最常见的目录操作命令,其主要功能是显示当前目录下的内容。此命令的基本格式为: [root@localhost ~]# ls [选项] 目录名称 表 1 列出了 ls 命令常用的选项以及各自

  • 问题内容: 在Bash中,我试图使函数getLock与不同的锁名一起使用。 但是羊群说 如何仅锁定文件并在需要时释放它,而不必在集群中执行命令? 它的用法如下: 问题答案: 锁定文件: 释放锁: 您也可以按照羊群手册页中的描述进行操作: …在这种情况下,文件退出时文件会自动关闭。(在这里也可以通过使用而不是来使用子外壳,但这应该是一个有意的决定- 因为子外壳会降低性能,并且会影响范围变量的修改和其