FreeBSD 上的 GNU grep 无法正常工作
GNU grep on FreeBSD not working properly
我在使用 grep (GNU grep) 2.5.1-FreeBSD 的 FreeBSD 8.4-STABLE 上遇到了一个奇怪的问题。
如果我尝试 grep -Hnr searchstring
我没有得到任何输出,但是 grep 是 运行 说 ps aux 并保持 运行 直到我终止进程.
如果我在一个空目录中复制一个测试文件并执行
cat testfile | grep searchstring
正在运行。
但如果我尝试
grep -Hnr searchstring
在该目录中我也没有输出,grep keeps 运行 和 运行 但没有产生任何匹配项。
有人知道怎么解决吗?
即使你给了 -r
,你仍然必须给 grep 一个文件参数。其他大小,正如您所发现的,它只是坐在那里等待标准输入的输入。
你想要
grep -Hnr searchstring .
# ....................^^
即递归查找当前目录下的文件
虽然似乎没有记录,但如果您使用 -r
选项调用 grep
并且没有文件或目录名称参数,它默认为当前目录,几乎就像您已经输入 grep -R pattern .
除了 ./
没有出现在输出中。
显然这是一个相当新的功能。
如果您在包含很多内容的目录中执行递归 grep
,它可能会花费很长时间——如果有诸如 /dev/zero
之类的设备文件可以生成无限输出。
我在使用 grep (GNU grep) 2.5.1-FreeBSD 的 FreeBSD 8.4-STABLE 上遇到了一个奇怪的问题。
如果我尝试 grep -Hnr searchstring
我没有得到任何输出,但是 grep 是 运行 说 ps aux 并保持 运行 直到我终止进程.
如果我在一个空目录中复制一个测试文件并执行
cat testfile | grep searchstring
正在运行。
但如果我尝试
grep -Hnr searchstring
在该目录中我也没有输出,grep keeps 运行 和 运行 但没有产生任何匹配项。
有人知道怎么解决吗?
即使你给了 -r
,你仍然必须给 grep 一个文件参数。其他大小,正如您所发现的,它只是坐在那里等待标准输入的输入。
你想要
grep -Hnr searchstring .
# ....................^^
即递归查找当前目录下的文件
虽然似乎没有记录,但如果您使用 -r
选项调用 grep
并且没有文件或目录名称参数,它默认为当前目录,几乎就像您已经输入 grep -R pattern .
除了 ./
没有出现在输出中。
显然这是一个相当新的功能。
如果您在包含很多内容的目录中执行递归 grep
,它可能会花费很长时间——如果有诸如 /dev/zero
之类的设备文件可以生成无限输出。