1.cat
- 通常查找出错误日志 cat error.log | grep 'foo' , 这时候我们还有个需求就是输出当前这个日志的前后几行:
cat error.log | grep -C 10 'foo' #显示file文件里匹配foo字串那行以及上下10行
cat error.log | grep -B 10 'foo' #显示foo及前10行
cat error.log | grep -A 10 'foo' #显示foo及后10行
- cat 显示指定行
cat error.log | head -n 1000 #显示前1000行
cat error.log | tail -n 1000 #显示最后1000行
cat error.log | tail -n +1000 #从第1000行以后开始显示
cat error.log | tail -n +1000 | head -n 3000 #从第1000行开始显示后面的3000行
cat error.log | tail -n +3000 | head -n 1000 #从第3000行开始显示后面1000行
cat error.log | head -n 3000 | tail -n +1000 #显示第1000行到第3000行
2.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 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部开始计算。
tail -f error.log #等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F error.log #等同于--follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
tailf error.log #等同于tail -f -n 10 与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电