脚本学习:grep-在一堆文件中查找指定的文本-tmp文件

问题

工作中经常碰到的一个需求场景是:Linux系统,在一堆文件中查找包含特定文本的文件。

具体来说,对应我们程序员,经常需要在一大堆.c/.cpp文件中查找指定的字符串,一个一个的打开查找,实在是不明智。

我在碰到这样的需求的时候,总会在当时上网查询到相关的指令,也就是本文所说的find指令,并解决我的问题。

但问题来了,老是忘记。今天在这里记录一下,给自己提个醒,也方便正在为这个问题发愁的人。

解决方法

在当前目录下,查找所有.c文件中包含Test字符串的文件

find ./ -name “*.c” | xargs grep -b “Test”

关于find的基本用法

另外,这里也附带上find指令的基本用法:

在当前目录,及子目录下查找所有后缀是html的文件,并显示出来。

# find . -name "*.html"

将目前目录及其子目录下所有最近 10 天内更新过的文件列出

# find . -ctime -10

查找/tmp目录中更改时间在10日以前的普通文件,并在删除之前询问它们:

# find /tmp -type f -mtime +10 -ok rm {} \;

查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

# find . -type f -perm 644 -exec ls -l {} \;

为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:

# find / -type f -size 0 -exec ls -l {} \;

脚本学习:grep-在一堆文件中查找指定的文本

推荐阅读