我正在尝试构建GNU grep,当我运行make时,我得到:
[snip]
/bin/bash: line 9: makeinfo: command not found
Run Code Online (Sandbox Code Playgroud)
什么是makeinfo,我该如何获得它?
(这是Ubuntu,如果它有所作为)
我试图用来grep匹配包含两个不同字符串的行.我尝试了以下但是这匹配包含string1  或 string2的行,这不是我想要的.
grep 'string1\|string2' filename
Run Code Online (Sandbox Code Playgroud)
那么我如何grep只匹配包含两个字符串的行?
grep -A1 'blah' logfile
Run Code Online (Sandbox Code Playgroud)
感谢这个命令对于每个包含'blah'的行,我得到包含'blah'的行的输出以及日志文件中的下一行.它可能是一个简单的但我无法找到一种方法来省略具有'blah'的行并且仅在输出中显示下一行.
我正在浏览由git管理的大量代码,每当我执行grep时,我都会看到一堆堆形式的消息:
> grep pattern * -R -n
whatever/.git/svn: No such file or directory
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让这些线条消失吗?
我有两个大文件(文件名集).每个文件大约有30,000行.我试图找到一种快速查找file1中不存在于file2中的行的方法.
例如,如果这是file1:
line1
line2
line3
Run Code Online (Sandbox Code Playgroud)
这是file2:
line1
line4
line5
Run Code Online (Sandbox Code Playgroud)
然后我的结果/输出应该是:
line2
line3
Run Code Online (Sandbox Code Playgroud)
这有效:
grep -v -f file2 file1
但是在我的大文件上使用它时非常非常慢.
我怀疑有一个很好的方法来使用diff(),但输出应该只是行,没有别的,我似乎无法找到一个开关.
任何人都可以帮我找到一个快速的方法,使用bash和基本的Linux二进制文件?
编辑:为了跟进我自己的问题,这是我到目前为止使用diff()找到的最好方法:
diff file2 file1 | grep '^>' | sed 's/^>\ //'
Run Code Online (Sandbox Code Playgroud)
当然,必须有更好的方法吗?
我需要在Windows中做一个递归grep,在Unix/Linux中是这样的:
grep -i 'string' `find . -print`
Run Code Online (Sandbox Code Playgroud)
或者更优选的方法:
find . -print | xargs grep -i 'string'
Run Code Online (Sandbox Code Playgroud)
我只是坚持使用cmd.exe,所以我只有Windows内置命令.我不能在这台服务器上安装Cygwin或任何第三方工具,如UnxUtils.我甚至不确定我是否可以安装PowerShell.任何建议只使用cmd.exe内置插件(Windows 2003 Server)?
我想找到按顺序有"abc"和"efg"的文件,这两个字符串在该文件的不同行上.例如:包含内容的文件:
blah blah..
blah blah..
blah abc blah
blah blah..
blah blah..
blah blah..
blah efg blah blah
blah blah..
blah blah..
Run Code Online (Sandbox Code Playgroud)
应该匹配.
我正在服务器上运行nohup进程.当我试图杀死它时,我的腻子控制台会关闭.
这是我尝试查找进程ID的方法:
ps -ef |grep nohup 
Run Code Online (Sandbox Code Playgroud)
这是杀人的命令
 kill -9 1787 787
Run Code Online (Sandbox Code Playgroud) 当我grep我的Subversion工作副本目录时,结果包括.svn目录中的许多文件.是否可以递归grep目录,但排除.svn目录中的所有结果?