1

我一直在尝试使用 NTemacs 和 Cygwin 中的 grep 对子文件夹中的文件执行递归 grep 命令。到目前为止,“最好”的结果是在 eshell 中使用 grep。当我使用这个时:

grep "t" -r *

我得到了一个包含字母 t 的所有文件名的列表,在所有子文件夹中向下一层,但没有别的。在 Cygwin 我什么也得不到。我正在研究一个不在 Cygwin 安装中的目录。不知道是不是那个mather。

我想要的是匹配所有文件中更复杂字符串的内容(不仅是文件名,还有内容)。并在所有子目录中。

我想使用 emacs 中的 eshell,但我愿意接受建议,除了使用 LINUX 的形式。这是一台工作 PC,我不想进行 LINUX 安装的所有设置。

4

1 回答 1

1

我刚刚为另一个问题写了一个非常相似的答案,但我怀疑这是同一个根本问题:

我的第一个想法是你的文件有 windows 行尾 (CRLF) 而不是 unix/linux 行尾 (LF),这会影响 grep 解析文件的能力。尝试运行这个:

dos2unix filename

在您需要搜索的每个文件上,然后再次尝试您的 grep 语句。

如果您需要跨多个目录转换许多文件,我建议使用dos2unix以下-exec操作find

find . -exec dos2unix {} \;

(当然,在运行之前添加您需要找到的任何其他选项)

于 2012-12-06T20:22:22.253 回答