2019独角兽企业重金招聘Python工程师标准>>>

1 假设有一个log文件http.txt,每行包含http返回码,找到返回码200的个数。

首先考虑每行最多出现一个200的情况

$ cat http.txt
return 100
return 100
return 200
return 100
return 100
return 100
return 100  200
return 100 300 400# 直接用grep就可以查出来
$ grep 200 http.txt -c #统计行数即可
2

如果每行可能多个200呢?

$ grep '\<200\>' http.txt
return 200
return 100  200 200

grep无能为力了,我们应该编写shell脚本计算

$ cat ct200.sh
#!/bin/bash
count=0
for i in `cat http.txt` # for是以 任何空白字符 作为分隔符
do# 也可写成 "$i" = "200"if [ $i = 200 ];thenlet count+=1fi
done
echo $count

运行如下

$ bash ct200.sh
3

2 文本中有多行数据,每一行可能有keyword,找出包含keyword的连续两行行号

假设内容如下

fsj@ubuntu:~/tmp$ cat meitu.txt
abc
66 kw
kw 4
d x
gdas
dsafd
ddd34
qq2dtttt
kw3 kw kw
666666666666kw
kw
theend

grep可以查到包含关键字kw的行

fsj@ubuntu:~/tmp$ grep kw meitu.txt -n
2:66 kw
3:kw 4
11:kw3 kw kw
14:kw
15:kw

如何查找连续两行行号? 同样要编写脚本ctrow.sh,判断上一个kw所在行和当前kw所在行是否相差1

#!/bin/bash
pre=-100 # 上一个行号
for i in `grep kw meitu.txt -n | awk -F: '{print $1}'`
doif [ $((pre+1)) -eq $i ]; thenecho $ifipre=$i
done

运行下:

fsj@ubuntu:~/tmp$ bash ctrow.sh
3
15

References

  • 王军. linux系统命令及shell脚本实践指南

转载于:https://my.oschina.net/SnifferApache/blog/755641

Linux服务器配置和管理:Shell编程查找关键字个数-查找相邻行数相关推荐

  1. Linux知识点回顾之shell编程

    Linux知识点回顾之shell编程 shell编程 1 基本介绍 1.1 Shell 脚本 1.2 Shell 环境 1.3 第一个shell编程 1.4 运行 Shell 脚本有两种方法: 1.5 ...

  2. Linux服务器配置与管理项目教程(CentOS7 /RHEL 7)(第三版)题库带答案

    Linux服务器配置与管理项目教程 (CentOS7 /RHEL 7)(第三版)微课版 第1篇   系统安装与网络配置 项目1  安装CentOS 服务器 项目2  配置Linux基础网络 不积跬步, ...

  3. Linux服务器配置和管理:虚拟机安装CentOS6.7

    2019独角兽企业重金招聘Python工程师标准>>> 原文地址:http://lawlietfans.coding.me/blog/2016/02/29/introduction- ...

  4. Linux服务器配置与管理

    Linux服务器配置与管理 RHEL6的安装 .登录.注销.退出 安装并启动VMware软件: 2 2.根据要求配置CPU.内存.硬盘类型和容量.网络连接方式.总线.其他硬件等的虚拟机环境: 3.加载 ...

  5. 【Linux系统管理】10 Shell 编程进阶篇

    六 Shell 编程 6.1 正则表达式 6.1.1 概述 还记得我们在上一章说过正则表达式和通配符的区别(正则表达式用来在文件中匹配符合条件的字符串,通配符用来匹配符合条件的文件名)吗?其实这种区别 ...

  6. Linux高级命令和Shell编程

    1.Linux高级命令 该章节的所有操作都在/export/data/shell目录进行,请提前创建该目录. mkdir -p /export/data/shell/ 1.1.重定向命令 1.重定向& ...

  7. 总结下linux中一些入门级shell编程实例

    在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shel ...

  8. 第13章代码《跟老男孩学习Linux运维:Shell编程实战》

    本书历史上已出版最实战的Shell高级编程实战书籍,没有之一,和市面书籍不同,本书是作者经过18年的运维工作及教学工作后,创新类企业级实战书籍,适合所有学习及从事Linux相关工作的读者. <跟 ...

  9. Linux进阶之路———Shell 编程入门

    引言 通过 Shell 编程的学习,铺平架构师道路上的一块大砖. Shell 在Linux 系统中的定位如下所示: 一.第一个 Shell 脚本 我们通过一个简单的 Shell 脚本来感受一下. 在 ...

  10. linux系列之-—01 shell编程笔记

    一.特殊变量($0.$1.$2. $?. $# .$@. $*) shell编程中有一些特殊的变量可以使用.这些变量在脚本中可以作为全局变量来使用. 名称 说明 $0 脚本名称 $1-9 脚本执行时的 ...

最新文章

  1. solr研磨之游标分页
  2. oracle服务器双机,双机热备Oracle数据库服务器操作实战
  3. php国外地址生成,thinkphp url生成
  4. 即时通信软件开发的年轻开发者曾注意到
  5. 一次性定时器 setTimeout
  6. 机器学习工具在数据中心的应用与发展
  7. 如何协助 MySQL 实现 Oracle 高级分析函数
  8. python编写agent_python实现Agent守护进程
  9. 【Android 逆向】脱壳解决方案 ( DEX 整体加壳 | 函数抽取加壳 | VMP 加壳 | Dex2C 加壳 | Android 应用加固防护级别 )
  10. linux格式化硬盘怎么那么慢,linux系统中怎么格式化硬盘
  11. APP是怎么精确统计下载数量?
  12. STC15 串口一 接收 发送 基本程序
  13. UltraISO 制作U盘启动盘
  14. 在网页中调用iOS客户端
  15. AspectJ简单实现
  16. 2008服务器注销设置,windows-server-2008 – 终端服务器在5分钟后注销用户
  17. python内网穿透 开源_内网穿透神器-Serveo
  18. MYIE2拖拽搜索中文关键词google乱码的解决方法
  19. Vivado IP核被锁的解除方法
  20. 混合模式程序matlab,VS2013 C# 调用 cognex 的QuickBuild做程序时发生一个错误

热门文章

  1. 2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) B - Enlarging Enthusiasm dp好题
  2. python-常用模块-time、datetime模块
  3. 搭建SpringMVC
  4. Codeforces Round #FF (Div. 2):Problem A - DZY Loves Hash
  5. IOS开发之----四舍五入问题
  6. zoj[3868]gcd期望
  7. Android中Bitmap、Drawable、byte[]转换
  8. 分布的距离(Distance of Distributions)
  9. 接受-拒绝采样/拒绝采样(accept-reject sampling/reject sampling)
  10. 查询英语单词 - 有道官方(一)