有没有一种简单的方法来打印所有非ASCII字符和它们使用命令行实用程序,如在文件中出现的行号grep,awk,perl,等?
我想将文本文件的编码从 UTF-8 更改为 ASCII,但在此之前,希望手动替换所有非 ASCII 字符实例,以避免文件转换例程影响的意外字符更改。
我将如何在当前目录和 Mac OS X 上的所有子目录中搜索所有 .java 文件中的简单字符串(不是正则表达式)?我只想打印匹配的文件和目录名称的列表。
我想通过不限于单行的目录递归地进行简单的正则表达式搜索。
我尝试了 grep 和 ack,但似乎都不支持这一点。
我知道它的计算成本不应该太高(就我而言),因为我选择的文本编辑器(Sublime Text)可以做得很好。
我只是在寻找一个简单的命令行版本。谷歌已经出现了pcregrep,但我似乎无法在 Mac 上找到它。我只是没有找对地方吗?
我发现自己一遍又一遍地搜索相同的代码库。虽然效果很好,但每个命令大约需要 10 秒,所以我正在考虑如何让它更快。
那么可以grep使用某种索引吗?我知道索引可能对复杂的正则表达式没有帮助,但我主要使用非常简单的模式。这种情况下是否存在索引器?
编辑:我知道 ctags 等,但我想做全文搜索。
我有一个包含大量.gz文件的目录层次结构。我希望能够为字符串“foo”递归地grep它们。根据我在网上阅读的内容,以下内容应该有效:
zgrep -R -H "foo" .
Run Code Online (Sandbox Code Playgroud)
但是,这永远不会返回任何结果。如果我用文件名替换点,它确实有效。例如,
zgrep -R -H "foo" myFile.gz
Run Code Online (Sandbox Code Playgroud)
然而,显然,这不再是递归的。
我知道“foo”在一些文件中,因为以下命令返回许多结果:
find . -iname "*.gz" | xargs zgrep "output" | less
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么我的递归 zgrep 命令不起作用。我在 RHEL linux 机器上
例如,当我使用ack(或grep)搜索我的主目录时,我通常想知道我在哪里设置了特定选项。
由于大多数配置文件都非常接近~它,ack如果我可以进行广度优先搜索,速度会大大加快。这可能吗?
只是想在 mac 终端(BSD grep - 2.5.1-FreeBSD)中找出带有 grep(或 egrep)的正则表达式的基本用法。
要检查的文件 ( pow.txt) 包含以下行:
kiytytytyty
Run Code Online (Sandbox Code Playgroud)
和
blob.mkv
Run Code Online (Sandbox Code Playgroud)
使用的命令是:
grep -E ^[a-z]+\.[a-z]{3}$i pow.txt
Run Code Online (Sandbox Code Playgroud)
返回的匹配是:
kiytytytyty
Run Code Online (Sandbox Code Playgroud)
显然这与 PCRE 正则表达式不匹配。正则表达式在 mac 上的解释不同吗?还是我的语法错误?
我正在寻找一个基于正则表达式的搜索/替换 GUI 工具,它能够处理多个文件/子目录,类似于grepWin但适用于 Mac OS X。
附注。我知道 grep 并且我不需要编辑器,只需要一个独立的工具。
是否有允许在具有特定扩展名的目录下的文件中搜索关键字的命令?
该字符串grep -irn "string" ./path对目录下的所有文件进行递归搜索./path。我的具体要求是搜索./path带有扩展名的所有文件,例如*.h