grep 和 find 使用

Feb 11 2020

在 Unix/Linux 系统中自带了一套全家桶工具,它们强大的功能帮助 shell 命令执行各种查询,检索,统计等操作更加高效便捷,今天来分享几个好用的工具,做一下常用功能的介绍,更多使用参数调用 –help 查询

grep 文本搜索

这个工具用得非常频繁,通常配合管道使用过滤日志内容

1
2
# 多重过滤
adb logcat |grep -e string1 -e string2

查找文件的内容,*.log 表示当前目录下所有的 log 文件

1
grep string1 *.log

目录中递归地搜代码

1
2
# -n 输出匹配行号
grep "inputText" . -R -n

注:在 windows 系统中使用 findstr 做文本搜索

find 文件查找

这个工具是查找文件的

查找当前目录及子目录的 java 文件

1
find . -name "*.java"

查找多个文件,使用 -print 指定定界符(默认是括号)

1
find . \( -name "*.txt" -o -name "*.java"  \) -print

或者使用正则表达式进行多重搜索

1
find . -regex  ".*\(\.txt|\.pdf\)$"

find 强大的地方还可以在搜索到指定文件后进行后续操作

1
2
# 找到文件后删除
find . -type f -name "*.tmp" -delete