玩转字符串

1.获取包含特定字符串的行号:

cat -n start.sh |grep 'JAVA_OPTS="'|awk '{print $1}'

2.获取改行的内容:

sed -n '10p' start.sh---获取第10行的内容

https://blog.csdn.net/wuzhiwuweisun/article/details/79136308

3.将内容替换第N行的内容

# sed '10c Hi' ab                #第一行代替为Hi

<https://blog.csdn.net/lml282518588/article/details/52918765>

4.变量文件,并输出某个字符串出现的次数

awk -v RS='XXX' 'END {print --NR}' catalina.out

或者grep -o 'XXX'  filename|wc -l

或者 grep -o ‘XX’\|YY'  filename|wc -l  #直接用\| 链接起来即可

5.抽取某文件中包含特定字符的行
awk '{if($0~"hello") print}' aa.log
解释说明:
抽取aa.log整个日志文件中,包含“hello”的行,打印输出

6.获取包含特定字符的第一行行号和最后一行的行号

获取包含“2018-01-02”的第一行行号
cat 1.txt | egrep "2018-01-02" -nR | awk -F ":" '{print $1}'| awk '(NR==1){print $0}'
获取包含“2018-01-02”的最后一行行号

cat 1.txt | egrep "2018-01-02" -nR | awk -F ":" '{print $1}'| awk 'END{print $0}'
获取包含“2018-01-02”的第一行和最后一行的行号

cat 1.txt | egrep "2018-01-02" -nR | awk -F ":" '{print $1}'|  awk '(NR==1){print $0} END{print $0}'

7.分析日志--爬取日志--统计日志出现次数

假设,你这会日志已经拿到手了,名字为xxx.log。

假设日志内容如下

//省略,都长差不多,贴其中一条就行
0:0:0:0:0:0:0:1 - - [27/Dec/2018:20:41:57 +0800] "GET /mvc2/upload.do HTTP/1.1" 404 949 http-bio-8080-exec-5 43
//省略

这个时候,你执行一串命令长下面这样的,进行统计就行!

cat xx.log |grep 'GET /mvc2'|cut -d ' ' -f4|uniq -c|sort -n -r 

出来等结果就是

2 [27/Dec/2018:20:40:44
1 [27/Dec/2018:20:47:58
1 [27/Dec/2018:20:47:42
1 [27/Dec/2018:20:41:57

然后你就知道,原来在20:40:44 分。。这个接口的QPS最高,达到了惊人的2QPS!

现在,来讲一下命令什么意思!

cat xxx.log : 读文件内容

grep 'GET /mvc2' : 将文件内容按照GET /mvc2 进行过滤

cut -d ' ' -f4 : 过滤出来的内容按照空格进行分割,取第四列内容

uniq -c : 每列旁边显示该行重复出现的次数

sort -n -r : 依照数值的大小排序

那么,如果是其他日志格式,无外乎 ”cut语句“的处理不同而已,道理类似!此法可以估算出单机的某接口的 “QPS” 是多少!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值