Linux 中查看文件和结果输出
前言
在 Linux 系统的日常运维中,通常需要查看 Linux 的文本信息、实时监控日志文件和信息过滤后输出,可以通过 tail 命令
、head 命令
、cat 命令
、tac 命令
、grep 命令
来实现。
演示环境 Linux 发行版
Ubuntu 20.10
tail 命令查看日志信息
实时监控日志:
tail -f filename
实时监控10行日志:
tail -10f filename
查看日志尾部的最后100行日志信息:
tail -n 100 filename
head命令查看文本信息
查看文本开始的头100行信息:
head -n 100 filename
查看文本最后100行信息以上的内容:
head -n -100 filename
cat命令查看文本信息
查看全部文本内容:
cat filename
查看文本的中间某些行范围之间的内容,例如查看文本文件100-120行:
cat -n filename |tail -n +100|head -n 20
tac查看文本信息
和cat相反,tac命令从文本尾部往头部展示日志内容:
tac filename
grep指令搜索文本内容
在多个文件中查找:
grep “match_pattern” file_1 file_2 file_3 ...
标记匹配颜色 --color=auto 选项:
grep "match_pattern" file_name --color=auto
//【这里的color项可以根据文档说明进行选择always,never,auto三种】
输出除之外的所有行 -v 选项:
grep -v "match_pattern" file_name
使用正则表达式 -E 选项:
grep -E "[1-9]+"
只输出匹配到的内容选项:
grep -o -E "[a-z]+." line
统计文件或者文本中包含匹配字符串的行数 -c 选项:
grep -c "text" file_name
输出包含匹配字符串的行数 -n 选项:
grep "text" -n file_name
查看日志最后一次出现关键字’test’的日志记录:
grep 'test' -A 10 log.file | tail -n 11
这里需要了解到grep命令的几个参数含义:
grep ‘name’ -A 10 显示匹配内容和后面的10行
grep ‘name’ -B 10 显示匹配内容和前面的10行
grep ‘name’ -C 10 显示匹配内容和前后面的10行
tail -n 11命令则是将当前显示的10行内容以及匹配的那一行内容展示出现
sed命令搜索文本内容
sed命令查看日期范围的指定:
sed -n '/2019-08-06 22:43/,/2019-08-06 22:44/p' filename
sed命令查看日志的第1-20行内容:
nl log.file | sed -n '1,10p'
查询指定字符串,并将结果输出到指定文件
1、满足一个条件(包含 “TJ” )的语句:
grep '1805' CloudPayment.log > out.log
cat CloudPayment.log | grep '1805' > out.log
2、满足两个条件中的一个条件(包含“1805” 或者 包含“1905”)的命令:
egrep '18051905' CloudPayment.log > out.log
grep -E '1805|1905' CloudPayment.log > out.log
cat CloudPayment.log | grep -E '1805|1905' > out.log
3、同时满足两个条件中(包含“1805” 和 “1905”)的命令:
grep '1805' CloudPayment.log | grep '1905' > out.log
egrep '1805.*1905| 1905.*1805' CloudPayment.log > out.log
cat CloudPayment.log | grep "1805" | grep "1905" > out.log
PS: 符号“>”表示擦除后写入文档 ; “>>”表示追加到文档
部分字符需要使用斜杠转译,如减号等
4、grep和tee结合:
在文件 CloudPayment.log中搜索订单号1905,
并将搜索结果输出到out.log
grep '1905' CloudPayment.log | tee -a out.log
总结
以前整理的笔记,先copy一下,抽时间精简和修改。