Mcr*_*dle 7 linux grep emacs xargs
问候 Emacsers
我在“Ubuntu 10.04.1 LTS”上运行 GNU Emacs 23.1.1 并且我在标准 Linux 内核源代码(vanilla)上使用内置 Mx rgrep 执行的任何搜索过早结束,以下错误打印到 emacs echo区域:
Grep exited abnormally with code 123
Run Code Online (Sandbox Code Playgroud)
我已经在 Redhat 系统上看到它一段时间了,还有其他(大型)代码库,有没有人看到或者更好地解决这个问题?
谢谢!
编辑:出于我以外的原因,stackexchange 不允许我在下面编辑我的评论,所以我会在这里更新。
按照下面的评论,我尝试运行 rgrep 在 emacs shell 缓冲区中运行的相同命令
find . \( -path \*/SCCS -o -path \*/RCS -o -path \*/CVS -o -path \*/MCVS -o -path \*/.svn -o -path \*/.git
-o -path \*/.hg -o -path \*/.bzr -o -path \*/_MTN -o -path \*/_darcs -o -path \*/\{arch\} \) -prune -o -type f \( -name \*.\[ch\] \) -p
rint0 | xargs -0 -e grep -i -nH -e v4l_compat_ioctl32
Run Code Online (Sandbox Code Playgroud)
虽然它不打印任何错误,但询问退出代码再次显示相同的 123。
/home/mcradle/linux> echo $?
123
Run Code Online (Sandbox Code Playgroud)
按照吉尔斯的评论,我试图运行
/home/mcradle/linux> find . -type f \( -name \*.\[ch\] \) -exec grep -i -nH -e v4l_compat_ioctl32 '{}' \;
Run Code Online (Sandbox Code Playgroud)
这在功能上等同于 find 和 xargs 组合,并以退出代码 0 完成
/home/mcradle/linux> echo $?
0
Run Code Online (Sandbox Code Playgroud)
所以它似乎与 xargs 有关。
Mcr*_*dle 10
查看 xargs 退出代码文档:
123 if any invocation of the command exited with status 1-125
Run Code Online (Sandbox Code Playgroud)
但根据 grep 文档 1 是退出状态,如果 grep 与模式不匹配
EXIT STATUS
Normally, the exit status is 0 if selected lines are found and 1 otherwise.
Run Code Online (Sandbox Code Playgroud)
所以对我来说,emacs 用来发出“rgrep”搜索的命令行似乎总是返回 123,这个错误要么需要被抑制,要么用命令行替换,例如
find . -type f \( -name \*.\[ch\] \) -exec grep -i -nH -e v4l
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10419 次 |
最近记录: |