Linux 使用 cat、tail、grep 命令组合查询
Linux 使用 cat、tail、grep 命令组合,可以更方便快捷的从日志中查找想要的数据
▶ cat命令
语法:
cat [OPTIONS] [FILE...]
参数说明:
-n:由 1 开始对所有输出的行数编号。
-b:和 -n 相似,只不过对于空白行不编号。
-s:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E:在每行结束处显示 $。
-T:将 TAB 字符显示为 ^I。
-A:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
[File]: 指定操作的目标文件名称
▶ tail命令
语法:
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
参数说明:
-f: 该参数用于监视File文件增长。
-c Number: 从 Number 字节位置读取指定文件
-n Number: 从 Number 行位置读取指定文件。
-m Number: 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
-b Number: 从 Number 表示的512字节块位置读取指定文件。
-k Number: 从 Number 表示的1KB块位置读取指定文件。
[File]: 指定操作的目标文件名称
例如常用的实时查看Nginx前20条访问日志:
tail -f -n 100 access.log
▶ grep 命令
语法:
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]
参数说明:
-e: 使用正则搜索
-i: 不区分大小写
-v: 查找不包含指定内容的行
-w: 按单词搜索
-c: 统计匹配到的次数
-n: 显示行号
-r: 逐层遍历目录查找
-A: 显示匹配行及前面多少行, 如: -A3, 则表示显示匹配行及前3行
-B: 显示匹配行及后面多少行, 如: -B3, 则表示显示匹配行及后3行
-C: 显示匹配行前后多少行, 如: -C3, 则表示显示批量行前后3行
--color: 匹配到的内容高亮显示
--include: 指定匹配的文件类型
--exclude: 过滤不需要匹配的文件类型
例如使用正则查找字符串 https 在文件中出现的次数:
grep -c -e 'https.*' access.log
▶ 结合 cat、tail、grep 命令组合查询
查询 access.log 日志中字符串 https 的前100行
cat access.log |grep -e "https.*" |tail -n 100
查询 access.log 日志中字符串 https 的后100行
cat access.log |grep -e "https.*" |tail -n -100
查询 access.log 日志中百度蜘蛛的访问记录
cat access.log |grep -e "baidu.*spider" |tail -n 10
从最近100条记录中查询并实时显示百度蜘蛛的访问日志
tail -f -n 100 access.log |grep -e "baidu.*spider"
我的笔记