linux基础

正则

基础

^ $ ^$ . * .* [] [^a]

扩展

| () {} ? +

grep/sed/awk

grep

-E 支持正则
-A
-B
-C
-c 统计次数
-V 取反
-o 只打印匹配内容
-w 精确匹配
-n 显示行号
-i 忽略大小写

sed

$ 表示最后一行 sed -n ‘$p’ //输出最后一行
sed -r ‘s###g’
后向引用:
eg: echo 123456 |sed -r ‘s#(.*)#<\1>#g’ //输出<123456> \1表示第一个括号的内容

awk

内置变量:
NR 行号 NF 列数 FS分隔符 OFS 输出分隔符(gawk -v OFS=“@”)

awk数组循环:
for(i in array)print i,array[i]

循环判断:
awk ‘{for(i=1;i<=NF;i++)if(xxx)xxx}’

案例

统计一段时间内系统中进程的内存分配数量

1.开启ftrace中相应事件
echo 1 > /sys/kernel/tracing/events/kmem/mm_page_alloc/enable
echo 1 >/sys/kernel/tracing/tracing_on

2、获取原始trace
echo 0 >/sys/kernel/tracing/tracing_on
cat /sys/kernel/tracing/trace > /data/trace
在这里插入图片描述

3、过滤trace中的内存分配事件
grep “mm_page_alloc” /data/trace >/data/trace_grep
在这里插入图片描述

4、过滤进程id、order
sed -r ‘s#(.*)\[(.*)order=([0-9]+)(.*)# \1 \3#g’ /data/trace_grep >/data/trace_sed
在这里插入图片描述

5、统计
gawk -F" {2,}" ‘{array[$2]+=4*2^$3}END{for(i in array)print i,array[i]}’ tracesed |sort -rnk2 >trace_awk.xls
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值