读取文件之 tail 命令
'tail' 命令
显示文件最后几行内容,读取log神奇。默认读取文件最后
10 行内容。
如
'tail -n'
语法
1 2
| tail -n<number> <file name> # tail -n<行数> <文件名称>
|
如读取最后5行:
'tail -c' 选项
tail -c 命令选项显示
文件以指定字符计数的最后内容。
语法
1 2
| tail -c<number> <file name> #tail -c<字符数> <文件名称>
|
如:
1 2 3 4 5 6
| $ tail -c10 log.game*
==> log.game1 <== 028.76777 ==> log.game2 <== 028.77236
|
显示 log.game为前缀 文件的 最后 10 个字符内容信息。
'tail -f'
当前语句可以将 log.test1, log.test2等以 log.test
打头文件的 初始最后十行 和
追加显示,这个是 看log神器
'tail -a'
有时使用 grep命令会提示 "binary file matches .log"**
从提示可以看出,该文件是个二进制文本。
此时使用 -a参数接口。
1
| -a, --text equivalent to --binary-files=text,即让二进制文件等价于文本。
|
读取文件之 grep 命令
-c 显示当前有多少条
这个语句非常 necessary, 因为log太多时,查找可能会
爆内存,先看看log有多少条(配合tail -n100等语句使用)。
1 2 3 4
| $grep "leo" ./log/log.ga* -c
./log/log.ga1:0 ./log/log.ga2:175
|
需满足所有条件
1
| grep word1 file.txt | grep word2 |grep word3
|
满足任意条件
1
| grep -E "word1|word2|word3" file.txt
|
搜索含有Track字段的log
1 2
| grep Trace log.txt grep "Trace" log.txt
|
多文件查找
1
| grep Trace file_1 file_2 file_3 ...
|
输出除 Trace 之外的所有行 -v
选项:
标记匹配颜色 --color=auto
选项:
1
| grep "Trace" file_name --color=auto
|
使用正则表达式 -E 选项:
1 2 3
| grep -E "[1-9]+" 或 egrep "[1-9]+"
|
只输出文件中匹配到的部分 -o
选项:
1 2 3 4 5
| echo this is a test line. | grep -o -E "[a-z]+\." line.
echo this is a test line. | egrep -o "[a-z]+\." line.
|
统计文件或者文本中包含匹配字符串的行数
-c 选项:
1
| grep -c "Trace" file_name
|
输出包含匹配字符串的行数 -n
选项:
1 2 3
| grep "Trace" -n file_name 或 cat file_name | grep "Trace" -n
|
多个文件
1
| grep "Trace" -n file_1 file_2
|
打印样式匹配所位于的字符或字节偏移:
1 2 3
| echo gun is not unix | grep -b -o "not" 7:not #一行中字符串的字符便宜是从该行的第一个字符开始计算,起始值为0。选项 -b -o 一般总是配合使用。
|
搜索多个文件并查找匹配文本在哪些文件中
-l:
1
| grep -l "Trace" file1 file2 file3...
|