Articles of grep

ps ax | 在terminal没有包装的grep java?

有没有办法执行ps ax | grep java 没有它包装在terminal上的ps ax | grep java ?

在整个文件系统中查找包含string的文件

我需要在整个文件系统中find给定string的所有实例,因为我不记得在哪个configuration文件,脚本或任何其他程序中,我需要用一个新的string更新该string。 我试着用下面的命令 `grep -nr'needle'/ –exclude-dir = .svn | mail [email protected] -s'xxx'的引用 如果我在一个小目录上运行这个命令,它会给出我需要的输出结果 /path1/:nn:line containing needle /path2/:nn:line containing needle 其中/ path1是文件的完整path,nn是包含针的行,最后一个字段是该行的内容。 但是,当我在根目录上运行命令后,grep进程挂起一段时间。 我大约8小时前运行这个脚本,甚至在一个小文件系统上(小于5GB),它不会结束,如果我运行top或ps的过程似乎睡觉 root 24909 0.0 0.1 3772 1520 pts/1 S+ Feb10 0:15 grep -nr needle / –exclude-dir=.svn 为什么它不结束? 有没有更好的方法来做到这一点(这是一个单一的工作,我不需要执行一次以上) 谢谢。 更新:我发现一个工作的解决scheme与查找和xargs似乎工作,并使用较less的系统资源比查找-exec解决scheme。 这是我最后的命令行: find /{boot,etc,home,lib,lost+found,opt,root,sbin,usr,var} -type f -print0 | xargs -r0 grep -nr 'needle' | mail […]

grep – 将回车识别为新行

我想search一个运行unix的web服务器,它包含一个特定的string。 通常我使用这些命令来实现这一点: find . -name "*.php" -print0 | xargs -0 grep -H -i "the string to search for" 这将find任何包含“要search的string”的PHP文件,并打印文件名和匹配的行。 到目前为止,这工作得很好,但现在我遇到了一个服务器,所有的php脚本没有任何换行符,而是只有回车符。 grep似乎没有把回车看作是新行,所以上面的命令会打印一个文件的全部内容,如果里面有匹配的话,而不是只打印一行。 任何帮助将不胜感激!

Spamassassin单行标签和移动邮件与X垃圾邮件标志:是到一个新的目录?

假设你有一个包含成千上万条消息的目录。 而你想把垃圾邮件与非垃圾邮件分开。 具体来说,你想: 对目录运行spamassassin,如果它认为它是垃圾邮件,用X-Spam-Flag:YES标记每个消息 有一个tcsh shell或perl单线程grep所有带有该标志的邮件,并将这些邮件移动到/ tmp / spam 你可以运行什么命令来完成这个任务? 例如,一些伪代码: /usr/local/bin/spamassassin -eL ./Maildir/cur/* | grep "X-Spam-Flag: YES" | mv %1 /tmp/spam

以recursion方式grep多个文件types

我试图找出如何search所有子目录中的“_iterator_tag”stringrecursion和扩展名为.cpp,.h,.hpp,.cxx,.inl的文件现在我所能做的就是search这些文件中的每一个types分别如下grep -R“_iterator_tag”–include'* .cpp'是否有更快的方法来search所有这些文件types? 谢谢

grep和tabs:不匹配

#cat sample 1 -1 2 2 2 2 2 1-1 3 我需要得到所有包含负值的行,也就是第一行。 值以制表符分隔。 首先我尝试了 # grep "\-1" sample 1 -1 2 2 1-1 3 但是,如果我尝试 grep "\t\-1" sample 我什么也没得到(不匹配)。 我究竟做错了什么?

在ssh会话中的单词换行不能使用grep

当我SSH我的Linux服务器,并像这样使用grep: grep'timeout exceeded'logfile | 减 自动换行不起作用。 但是,如果我使用相同的命令,但首先使用较less,如下所示: less日志文件| grep超时超时 线条包裹。 我不确定问题是什么,或者这是否正常。 但是,不pipe我使用的ssh客户端如何。 我已经尝试了腻子和Ubuntu客户端。 我怎样才能解决这个问题?

如何在Linux中模拟旧的unix grep -S严格的function

我正在刷新一个命令的输出,我只想返回特定的,严格的结果。 我记得grep的一些迭代有一个严格的选项-s / –strict 。 例如, grep -s bytes只会返回提及单词“bytes”的条目,而不是每个包含字节的单词,如“兆字节”,“千字节”等。

别名replace文件中的文本

这里是一个实际的情况。我面对我的一些文件,这些文件中有一个共同的string。我通常会打开vi,做一些像 :%s/text/replacement/g 而且我必须在许多文件中多次执行它。 有没有一些简单的方法来做到这一点,或者我可以创build一些别名?

在这个用例中如何正确地用grep和cp来查找pipe道

我感兴趣的是在一个模式的目录中recursion地刷新一个string,然后把匹配的文件复制到目标目录。 我以为我可以做类似下面的事情,但是对于linux的查找工具似乎没有意义: find . -type f -exec grep -ilR "MY PATTERN" | xargs cp /dest/dir 有没有更好的方法去做这件事? 或者甚至是一种方法,将是一个坚实的开始。