grep查找指定字符
栏目:
Linux
发布时间:2022-02-24
前言
今天,我们来一起看一下,在 linux 环境下,如何根据文件内容信息来查找文件。
grep 基础用法
使用 grep 在 logs 目录下查找包含“出错了” 3 个字的日志文件
# 编号:1
$ grep '出错了' ./**/*
也可以在指定的单个或多个文件中进行查找:
# 编号:2
$ grep '出错了' ./frontend_api_new/frontend_api_new-web.log.2022-02-23
# 编号:3
grep '出错了' ./frontend_api_new/frontend_api_new-web.log.2022-02-2{2,3}
使用 grep -r 进行递归查找
# 编号:4
$ grep -r '出错了' ./
使用 grep -n 显示匹配内容的行号
# 编号:5
grep -rn '出错了' ./
使用 grep -l 只显示匹配的文件,不展示匹配内容
# 编号:6
$ grep -rl '出错了' ./
使用 grep -L 进行反向查找,查找不含含匹配内容的文件
# 编号:7
$ grep -rL '出错了' ./
使用 grep -c 统计匹配次数
# 编号:8
$ grep -rc '出错了' ./
换个方式验证一下:
# 编号:9
$ cat ./frontend_api_new/frontend_api_new-web.log.2022-02-23 | grep '出错了' | wc -l
使用 grep -v 查找不包含指定内容的文件行内容
# 编号:10
$ grep -v '出错了' ./frontend_api_new/frontend_api_new-web.log
# 编号:11
$ grep -vn '出错了' ./frontend_api_new/frontend_api_new-web.log
grep -i 忽略大小写匹配
# 编号:12
$ grep -i 'Schedule' ./frontend_api_new/frontend_api_new-web.log
搭配 find 命令 进行高级查找
# 编号:13
$ find ./ -mtime -3 -type f | xargs grep '出错了'
# 编号:14
$ find ./ -mtime -3 -type f | xargs grep -l '出错了'
使用 grep 管道符查找
# 编号:15
$ find ./ -name '*.log*' | xargs cat | grep '出错了'
# 编号:16
$ cat $(find ./ -name '*.log*') | grep '出错了'
总结
我们使用 grep 搭配各种参数来查找文件
1、grep -r 递归查找
2、grep -n 搜索内容并显示行号
3、grep -l 只列出匹配的文件名,不展示匹配内容
4、grep -L 只列出不包含搜索内容的文件名,不展示匹配内容
5、grep -c 统计匹配次数
6、grep -v 查找不包含指定内容的文件行
7、grep -i 忽略大小写匹配
另外,对于一些复杂查找,我们可以搭配 find 和 grep 来完成。
本文地址:https://www.tides.cn/p_linux-find-content-by-grep