标签: grep

如何在Linux上找到包含特定文本的所有文件?

我正在尝试找到一种方法来扫描整个Linux系统,查找包含特定文本字符串的所有文件.只是为了澄清,我在文件中寻找文本,而不是文件名.

当我查找如何做到这一点时,我遇到了两次这个解决方案:

find / -type f -exec grep -H 'text-to-find-here' {} \;
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用.它似乎显示系统中的每个文件.

这是否接近正确的方法呢?如果没有,我该怎么办?这种在文件中查找文本字符串的能力对于我正在做的一些编程项目非常有用.

linux directory grep text find

4914
推荐指数
52
解决办法
614万
查看次数

grep一个文件,但显示几个周围的行?

我想要grep一个字符串,但也显示前面的五行和以下五行以及匹配的行.我怎么能这样做?

search logging grep command-line-interface

3277
推荐指数
14
解决办法
104万
查看次数

我如何递归grep?

我如何递归grep所有目录和子目录?

find . | xargs grep "texthere" *
Run Code Online (Sandbox Code Playgroud)

unix linux grep

1619
推荐指数
18
解决办法
148万
查看次数

如何在git历史中grep(搜索)已提交的代码?

我过去的某个时候删除了文件或某些代码.我可以在内容中进行grep(不在提交消息中)吗?

一个非常糟糕的解决方案是grep日志:

git log -p | grep <pattern>
Run Code Online (Sandbox Code Playgroud)

但是,这不会立即返回提交哈希.我一直玩得git grep无济于事.

git diff grep

1342
推荐指数
10
解决办法
36万
查看次数

如何使用grep在Linux上显示文件名?

如何grep在Linux上使用仅显示文件名(无内联匹配)?

我通常使用类似的东西:

find . -iname "*php" -exec grep -H myString {} \;
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得文件名(带路径),但没有匹配?我必须使用xargs吗?在我的grep手册页上,我没有看到这样做的方法.

linux grep

970
推荐指数
3
解决办法
59万
查看次数

如何管stderr,而不是stdout?

我有一个程序可以将信息写入stdoutstderr,并且我需要grep通过什么来到stderr,而忽略了stdout.

我当然可以分2步完成:

command > /dev/null 2> temp.file
grep 'something' temp.file
Run Code Online (Sandbox Code Playgroud)

但我宁愿能够在没有临时文件的情况下做到这一点.有没有任何智能管道技巧?

bash grep stdout pipe stderr

933
推荐指数
8
解决办法
38万
查看次数

使用grep进行负匹配(匹配不包含foo的行)

我一直在试图找出这个命令的语法:

grep ! error_log | find /home/foo/public_html/ -mmin -60
Run Code Online (Sandbox Code Playgroud)

要么

grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60
Run Code Online (Sandbox Code Playgroud)

我需要查看所有已修改的文件,除了那些已命名的文件error_log.

我在这里读过它,但只发现了一个not-regex模式.

grep

912
推荐指数
3
解决办法
77万
查看次数

grep,但只有特定的文件扩展名

我正在编写一些脚本到grep某些目录,但这些目录包含各种文件类型.

我想grep只是.h.cpp现在,但也许其他几个人的未来.

到目前为止,我有:

{ grep -r -i CP_Image ~/path1/;

grep -r -i CP_Image ~/path2/;

grep -r -i CP_Image ~/path3/;

grep -r -i CP_Image ~/path4/;

grep -r -i CP_Image ~/path5/;} 

| mailx -s GREP email@domain.com
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何添加特定的文件扩展名?

unix linux search command-line grep

880
推荐指数
9
解决办法
57万
查看次数

使用grep --exclude/ - include语法不要浏览某些文件

我正在寻找foo=目录树中的文本文件中的字符串.它在一台普通的Linux机器上,我有bash shell:

grep -ircl "foo=" *
Run Code Online (Sandbox Code Playgroud)

在目录中还有许多匹配"foo ="的二进制文件.由于这些结果不相关并且减慢了搜索速度,我希望grep跳过搜索这些文件(主要是JPEG和PNG图像).我该怎么办?

我知道有--exclude=PATTERN--include=PATTERN选项,但模式格式是什么?grep的手册页说:

--include=PATTERN     Recurse in directories only searching file matching PATTERN.
--exclude=PATTERN     Recurse in directories skip file matching PATTERN.
Run Code Online (Sandbox Code Playgroud)

搜索grep include,grep include exclude,grep exclude和variants没有找到任何相关内容

如果有一种更好的方法只在某些文件中进行grepping,我就是全力以赴; 移动违规文件不是一种选择.我不能只搜索某些目录(目录结构很乱,随处可见).另外,我无法安装任何东西,所以我必须使用常用工具(如grep或建议的查找).

unix shell search command-line grep

757
推荐指数
12
解决办法
61万
查看次数

如何'grep'连续流?

这是否可以grep连续使用?

我的意思是一种tail -f <file>命令,但grep在输出上只是为了保留我感兴趣的行.

我已经尝试了,tail -f <file> | grep pattern但似乎grep只能执行一次tail,也就是说永远不会.

linux bash shell grep tail

678
推荐指数
7
解决办法
30万
查看次数

标签 统计

grep ×10

linux ×5

search ×3

unix ×3

bash ×2

command-line ×2

shell ×2

command-line-interface ×1

diff ×1

directory ×1

find ×1

git ×1

logging ×1

pipe ×1

stderr ×1

stdout ×1

tail ×1

text ×1