grep #
一、或和过滤 #
grep "abc\|123" test.log` | grep -v "xyz"
二、排除某(些)文件(夹) #
1. 排除文件: #
--exclude=
2. 排除文件类型: #
grep "get_wx_mapping" . -r --exclude=*.{log,}
{}
中貌似必须有,
, 也就是说必须传入为列表, 不然不生效, 倒和Python
的tuple
类型有些相像。
3. 排除文件夹: #
--exclude-dir=
个:
grep "get_wx_mapping" . -r --exclude-dir=log
些:
grep "get_wx_mapping" . -r --exclude-dir={log,__pycache__}
sed #
awk #
只能使用
单引号
双引号不行的呦("{print $1}"
✗ )
awk '{print $1}' # 第一列
一、awk算数 #
[[小命令#18. awk算数]]
grep 400586 sched.log.2024-05-28 | grep 条 | awk '{print $8}' | awk -F'条,' '{sum += $1} END {print sum}'
awk -F'条,' '{sum += $1} END {print sum}'
用条
进行分割取$1
第一个进行sum
求和计算awk '{print $8}'
这里注意使用单引号
250
原日志数据为:
2024-05-28 18:15:51 sched WARNING [1178]: await self.redis.enqueue_update_db(*update_tasks) 1条, 0 is: 400586 + 2024-05-28 05:24:52 + MY
2024-05-28 18:49:20 sched WARNING [1178]: await self.redis.enqueue_update_db(*update_tasks) 3条, 0 is: 400586 + 2024-05-28 03:02:38 + MY
2024-05-28 18:59:50 sched WARNING [1178]: await self.redis.enqueue_update_db(*update_tasks) 4条, 0 is: 400586 + 2024-05-28 04:12:04 + MY
二、查看文本列 #
awk -F ',' '{print $NF}'
,
分隔符$NF
末尾 同理也可$1
$1, $3
表示1列+3列,并不含2列
三、统计每秒多少条日志 #
grep "status_code: 200" max_power_pro_max.log | awk '{print $1, $2}' | cut -d '.' -f 1 | uniq -c | awk '{print $2, $3, $4 ": " $1 " logs"}'