linux下文件查看技巧

"1-常用的查看文件命令"

Posted by Dunno on May 9, 2016

背景

在工作中我们经常需要查看日志来迅速的定位问题,同时发生故障时我们要经常的统计日志中相关的内容,那么掌握一些常用的日志操作命令就非常必要了。

筛选命令

cut命令


功能:截取结果
选项参数:
-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段讯息分割成为数段,用 -f 取出第几段的意思; 
-c :以字符 (characters) 的单位取出固定字符区间;

eg:
cut -d'分隔字符' -f fields <==用与有特定分隔字符
cut -c 字符区间 <==用亍排列整齐的讯息

grep命令


功能:筛选结果
选项参数:
-A num 	把每处匹配的后面num几行打出来
-B num  把每处匹配的前面几行打出来
-C num  等效于 -A num -B num
-c 把匹配的个数打出来
--color=auto 把匹配部分的颜色打出来
-e pattern pattern是正则表达式,符合的打出来
-i 不考虑大小写来匹配
-m num 最大匹配次数
-n 把行号打印出来
-v 反向匹配
-o 正则
eg:
grep -nC 2 -i -m 3 -color=auto "exception" error.log 

sort命令


功能:排序
选项参数:
-b 忽略开头的空格
-d 按照字典顺序排序
-f 忽略大小写
-g 一般的数字排序
-i 只考虑能被打印出的字符
-M 按照月份排序
-n 根据数字string类型排序
-r 结果反向
-c 检测input是不是已经排序了,如果是就不再排序了
eg:

# 统计命令 ## uniq命令


功能:结果去重
选项参数:
-c 打印出每项对应的数目
-d 仅仅输出input中重复的行
-u 仅仅打印出input没有重复的行
-i 忽略大小写字符的不同
eg:
cat testsort | uniq

wc命令


功能:统计个数
选项参数:
-c 统计打印出来的字节个数
-l 统计打印出来的行数
-m 统计打印出来的字符个数
-w 统计打印出来的单词个数
eg:
cat testsort | wc -l

tee命令


功能:打印输出时同时把结果写入文件中
选项参数:
-a 通过append的方式追加到文件中
eg:
cat testsort| sort -g | uniq | wc -m | tee -a test 结果会打印出来
cat test 就可以看到结果

字符串替换命令

tr命令


功能:替换字符
语法:
tr [-Ccsu] string1 string2
tr [-Ccu] -d string1
tr [-Ccu] -s string1
tr [-Ccu] -ds string1 string2
选项参数:
-c 统计打印出来的字节个数
-l 统计打印出来的行数
-m 统计打印出来的字符个数
-w 统计打印出来的单词个数
eg:
把如下输出
1
2
3
转化成 1,2,3
echo "1\n2\n3" | tr "\r\n" "," 

xargs命令

将管道前面的内容作为xargs后面命令的参数,如果xargs后面没有跟命令,那么默认是echo。


功能:将管道前面的内容作为xargs后面命令的参数,如果xargs后面没有跟命令,那么默认是echo。
语法:
xargs [-0epn] command
选项参数:
-0 :如果输入的 stdin 含有特殊字符,例如 `, \, 空格键等等字符时,这个 -0 参数可以将
他还原成一般字符。这个参数可以用于特殊状态!
-e :这个是 EOF (end of file) 的意思。后面可以接一个字符串,当 xargs分析到这个字符串时,就会停止继续工作!
-p :在执行每个指令的argument 时,都会询问使用者是否执行该命令,输入y执行,输入n不执行;
-n :后面接次数,每次 command 指令执行时,要使用几个参数的意思。
eg:
echo "1\n2\n3" | xargs
echo "1\n2\n3\n\\"  | xargs  #打印不出\字符
echo "1\n2\n3\n\\"  | xargs -0  #打印的出\字符
echo "1\n2\n3" | xargs -E 2  #因为2作为终结符,所以只会打印出1
echo "1\n2\n3\n\\"  | xargs  -n 2 #按照2个参数一组依次执行
echo "1\n2\n3\n\\"  | xargs -n1 -p #一次询问你是否打印单个数字