日常查询日志用到的指令

查询日志

jq

可以识别日志中的json。
安装:

brew install jq

使用方式

	{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}12312
	{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
	{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
	{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}123
	{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
	{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
	{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
	{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
	{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
head 1.log| jq ".user_id"
# 以下为执行结果
123123123
jq: error (at <stdin>:1): Cannot index number with string "user_id"
123123123
123123123
123123123
jq: error (at <stdin>:4): Cannot index number with string "user_id"
123123123
123123123
123123123
123123123
123123123

cut

使用方式
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的

eg

{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}12312
{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}123
{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":10, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
head 1.log| cut -d ':' -f 2
"xxx", "age"
"xxx", "age"
"xxx", "age"
"xxx", "age"
"xxx", "age"
"xxx", "age"
"xxx", "age"
"xxx", "age"
"xxx", "age"
head 1.log| cut -b 1-7
{"name"
{"name"
{"name"
{"name"
{"name"
{"name"
{"name"
{"name"
{"name"

sort

使用方式
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-u 意味着是唯一的(unique),输出的结果是去完重了的。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
–help 显示帮助。
–version 显示版本信息。
[-k field1[,field2]] 按指定的列进行排序。

eg

{"name":"xxx", "age":11, "user_id": 123123121, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":12, "user_id": 123123122, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":13, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":14, "user_id": 123123124, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":15, "user_id": 123123125, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":16, "user_id": 123123126, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":17, "user_id": 123123127, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":18, "user_id": 123123128, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":19, "user_id": 123123129, "profile": "xxxxxxxx.jpg"}
head 1.log| jq ".user_id" | sort
123123121
123123122
123123123
123123124
123123125
123123126
123123127
123123128
123123129
head 1.log| jq ".user_id" | sort -r
123123129
123123128
123123127
123123126
123123125
123123124
123123123
123123122
123123121

uniq

-c或–count 在每列旁边显示该行重复出现的次数。
-d或–repeated 仅显示重复出现的行列。
-f<栏位>或–skip-fields=<栏位> 忽略比较指定的栏位。
-s<字符位置>或–skip-chars=<字符位置> 忽略比较指定的字符。
-u或–unique 仅显示出一次的行列。
-w<字符位置>或–check-chars=<字符位置> 指定要比较的字符。
–help 显示帮助。
–version 显示版本信息。
[输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
[输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)

eg

{"name":"xxx", "age":11, "user_id": 123123121, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":12, "user_id": 123123122, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":11, "user_id": 123123123, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":14, "user_id": 123123124, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":13, "user_id": 123123125, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":13, "user_id": 123123126, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":12, "user_id": 123123127, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":11, "user_id": 123123128, "profile": "xxxxxxxx.jpg"}
{"name":"xxx", "age":12, "user_id": 123123129, "profile": "xxxxxxxx.jpg"}
head 1.log| jq ".age" | sort | uniq -c
   3 11
   3 12
   2 13
   1 14
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值