shell三剑客介绍及实例

更新时间:2023-07-07 21:44:38 阅读: 评论:0

shell三剑客介绍及实例
Linux三剑客指的是grep、d、awk,配合正则表达式使⽤就⾮常强⼤,笔者个⼈感觉会使⽤普通的场景就⾜够⼯作中适⽤了,其中grep擅长查找功能,d擅长取⾏和替换。awk擅长取列,笔者分别针对这些功能列举语法以及实际案例。新⼿⼊门,如有问题,欢迎指正 ~
最开始,先介绍⼀下管道的概念,| 这个竖线就是管道的意思,后⽂中会持续⽤到该符号,作⽤就是将前⼀个命令的输⼊输送给 | 后⾯的命令,可以进⾏多重管道,例如:
⼀、grep
  grep作⽤是筛选,查询
  1. 语法规则
  Usage: grep [选项]... 匹配项 [⽂件]...
  ⽀持的正则描述
  -E,--extended-regexp 模式是扩展正则表达式(ERE)
  -e,--regexp=PATTERN 使⽤模式匹配,可指定多个模式匹如何激发学生的学习兴趣
  -f,--file=FILE 从⽂件每⼀⾏获取匹配模式
  -i,--ignore-ca 忽略⼤⼩写
  -w,--word-regexp 模式匹配整个单词
  -x,--line-regexp 模式匹配整⾏
  输出控制描述
  -m,--max-count=NUM 输出匹配的结果 num 数
  -n,--line-number 打印⾏号
  -H,--with-filename 打印每个匹配的⽂件名
trar  -h,--no-filename 不输出⽂件名
  -o,--only-matching 只打印匹配的内容
  -q,--quiet 不输出正常信息
美国vs英国  -s, --no-messages 不输出错误信息
  -r,--recursive 递归⽬录
  -c,--count 只打印每个⽂件匹配的⾏数
  --include=FILE_PATTERN 只检索匹配的⽂件
  --exclude=FILE_PATTERN 跳过匹配的⽂件
  --exclude-from=FILE 跳过匹配的⽂件,来⾃⽂件模式
  --exclude-dir=PATTERN 跳过匹配的⽬录
  -v,--invert-match 打印不匹配的⾏
  内容⾏控制描述
  -B,--before-context=NUM 打印匹配的前⼏⾏
英语词根表
  -A,--after-context=NUM 打印匹配的后⼏⾏
  -C,--context=NUM 打印匹配的前后⼏⾏
  --color[=WHEN], 匹配的字体颜⾊
    2. 案例
  # 很常⽤的使⽤ grep 筛选⽬前服务器使⽤的java tomcat nginx进程 
  # 查询⽇志关键词 -e 达标多个条件
  #  输出查询内容后5⾏的⽇志
  #  通过正则来筛选结果
  #  查询以 ACTIVITY 开头的⽇志
  #  查询所有出现的时间 
  #  查询出所有符合条件的IP地址
⼆、d
  d作⽤是过滤和替换⽂本。
  1. 语法规则 
prize是什么意思  d [选项] '地址命令' file 
  选项描述
  -n 不打印模式空间
  -e 执⾏脚本、表达式来处理
  -f 执⾏动作从⽂件读取执⾏
  -i 修改原⽂件
  -r 使⽤扩展正则表达式
  地址描述
  first~step 步长,每 step ⾏,从第 first 开始
  $ 匹配最后⼀⾏
  /regexp/ 正则表达式匹配⾏
  number 只匹配指定⾏
  addr1,addr2 开始匹配 addr1 ⾏开始,直接 addr2 ⾏结束
  addr1,+N 从 addr1 ⾏开始,向后的 N ⾏
  addr1,~N 从 addr1 ⾏开始,到 N ⾏结束
  命令描述
  s/要替换的内容/替换成的内容/ 替换字符串
  p 打印当前模式空间
  P 打印模式空间的第⼀⾏
复活节
  d 删除模式空间,开始下⼀个循环
  D 删除模式空间的第⼀⾏,开始下⼀个循环
  = 打印当前⾏号
  2. 案例
  #  替换输⼊内容(其中不以g结尾是替换每⾏中的第⼀个"11",否则就是替换所有的"11")
  # 替换⽂件内容并覆盖(-i 参数代表替换⽂件内容)
  、
三、awk
  awk是⼀个处理⽂本的编程语⾔⼯具,能⽤简短的程序处理标准输⼊或⽂件、数据排序、计算以及⽣成报表等等。搏击俱乐部经典台词
  1. 语法规则 
  基本的命令语法:awk option 'pattern {action}' file
  其中 pattern 表⽰ AWK 在数据中查找的内容,⽽ action 是在找到匹配内容时所执⾏的⼀系列命令。花括号⽤于根据特定的模式对⼀系列指令进⾏分组。
  选项描述
siao
  -f program-file 从⽂件中读取 awk 程序源⽂件
  -F fs 指定 fs 为输⼊字段分隔符
  -v var=value 变量赋值
  pattern (匹配模式)
  /regular expression/ 为每个输⼊记录匹配正则表达式
  pattern && pattern 逻辑 and,满⾜两个模式
  pattern || pattern 逻辑 or,满⾜其中⼀个模式
  ! pattern 逻辑 not,不满⾜模式
  BEGIN{ } 给程序赋予初始状态,先执⾏的⼯作
  END{ } 程序结束之后执⾏的⼀些扫尾⼯作
  2. 案例
  #  输出指定列
  # 指定分隔符
  # BEGIN END的使⽤(可以⽤作格式化输出,也可以在其中做⼀些初始化,以及收尾的⼯作)
高考下午几点开始几点结束  #  格式化输⼊
  #  初始化分隔符和换⾏符,最后列数与记录数
  其中: FS 输⼊字段分隔符,默认是空格或制表符
      RS 输⼊记录分隔符,默认是换⾏符\n
      NF 统计当前记录中字段个数
      NR 统计记录编号,每处理⼀⾏记录,编号就会+1
  #  使⽤正则的场景(筛选出符合条件的列,按照默认空格切分后,输出第三列)
写在⽂末:列举了这么多,实际都是想象中的⽤法,实际⼯作中我⽬前只⽤到了 grep的简单场景,如有啥问题,请多包涵【狗头】  中国旅游景点介绍

本文发布于:2023-07-07 21:44:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/170361.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:内容   匹配   模式   替换
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图