如何在文件夹中的文件中搜索字符串?
是否有任何实用程序可以在ASCII文件中搜索字符串以避免命令行搜索?
如何进行命令行搜索,例如目录/var/x/
所有文件中的字符串“test”?
您可以使用searchmonkey。 该工具在存储库中可用,因此您可以简单地使用
sudo apt-get install searchmonkey
另一方面,使用grep命令行搜索真的是为了…
这是searchmonkey的截图
我假设您的第一个问题是关于grep
命令的GUI替代方案。 我无法帮助你,我总是发现命令行非常有效。
至于命令行,试试吧
grep "test" /var/x/*
如果要递归搜索(即不仅在/var/x/
,还在其子目录中),
grep -R "test" /var/x/
为避免grep grep认为是二进制的文件,请使用-I
选项:
grep -I "test" /var/x/
如果grep认为文件是二进制文件(基于文件的前几个字节),它将认为它不匹配而不是通过整个文件。
你可以使用regexxer它是一个伟大的GUI搜索/替换工具的正则表达式。
你可以下载:
sudo apt-get install regexxer
试试Recoll,我用过的最好的GUI。 要在所有当前支持的Ubuntu版本中安装recoll,请打开终端并键入:
sudo apt install recoll
首先索引文件需要一些时间(您可以定义黑名单路径或扩展名或mime)。
您可以使用终端的grep
命令:
grep -r string *
此命令将在当前目录(或子目录)下的所有文件中查找所有出现的“string”。
对于隐藏文件,您可以使用:
grep -r string ..
不幸的是,grep在Word(.doc)文件中搜索工作非常糟糕,但你可以将catdoc输出管道输入grep。 我不是程序员,但这个小脚本适合我:
#!/bin/bash export GREP_OPTIONS='--color=auto' echo -e "\n Welcome to scandocs. This will search .doc (NOT .docx) files in this directory for a given string. \n Type in the text string you want to find... \n" read response find . -name "*.doc" | while read i; do catdoc "$i" | grep -iH --label="$i" "$response"; done
欢迎所有改进和建议!
我刚刚发布了一个简单的工具来完成这项工作。 主要针对软件开发人员,它具有在同一窗口中打开多个文件的(独特的?)特性。 它使用Ace编辑器(推荐!)或html textarea在浏览器中显示结果。 它是一个基于java的工具,因此它可以在Windows和Linux中运行。
看看这个!