我刚刚将我的Ubuntu VM更新到14.04,在此之前我可以运行grep命令
grep -nr "piece of text"
或任何其他grep命令,它将在我正在处理的目录中完成2-10秒。现在由于某种原因(不知道这是否是由更新造成的)在同一个目录中运行任何grep命令我正在工作似乎挂在那里(idk如果它完成因为我不想等待一分钟或所以搜索发生)而不是显示我的结果。知道发生了什么或我能做些什么,并尝试解决它?
答案 0 :(得分:3)
答案 1 :(得分:2)
grep
? -r
选项默认为'。' gnu案例中的目录
which grep :
/bin/grep --version
/bin/grep (GNU grep) 2.18)
...
this is gnu grep :
echo "truc" >/tmp/truc
cd /tmp; grep -nr "truc";
使用gnu grep - >它以递归方式搜索文件。当前目录(在/tmp
中)并显示它们包含“truc”
如果/bin/grep --version
是busybox:
BusyBox v1.22.1 (Debian 1:1.22.0-8) multi-call binary.
用法:
grep [-HhnlLoqvsriwFEz] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]...
使用busybox:cd /tmp; busybox grep -nr "truc";
无限期地等待您在STDIN上键入文件内容(使用 Ctrl + C 停止)。
它将STDIN读作文件(甚至不关心-n
表示目录递归)。
答案 2 :(得分:1)
正如其他人回答的那样,正如POSIX grep或GNU grep文档所述,您需要为标准grep
命令指定一些文件。 (但如果grep
没有目录名,则 GNU .
默认为当前目录-r
;但如果没有给出-r
, grep
默认为-
,即 stdin )。
ack-grep
package。它不需要任何文件(默认是当前目录下的源代码文件),它避免了无用的非源文件(版本控制或目标文件......):
ack "piece of text"
此外,在emacs下,您可以使用M-x grep