zoukankan      html  css  js  c++  java
  • Liunx运维(四)-文本处理三剑客:grep、sed、awk

    文档目录:

    一、grep:文本过滤工具

    二、sed:字符流编辑器

    三、awk:文本分析工具

    ---------------------------------------分割线:正文--------------------------------------------------------

    一、grep:文本过滤工具

    1、grep -v '123' test3 #过滤不包含123的行

     2、grep -n '123' test3 #过滤包含123的行并输出行号

     3、grep -i 'AbC' test3 #过滤含abc的行并不区分大小写

     4、grep -Ei 'abc|123' test3  #同事过滤两个不同的字符串并为过滤的内容颜色显示,并不显示大小写

     5、grep -c 123 test3  #匹配的字符串的数量

     6、grep -o -n 123 test3  #只输出匹配的内容

     7、grep -w 123 test3 #全词匹配123

     8、grep -Ev '^$|#' test3 #去除文本中的^$空行 以及 #注释

    二、sed:字符流编辑器

    预置测试文本:

     1、sed '2a 102_1 xiaowang,CSO' test4.txt #2a,第2行后增加,实际文件并不增加

     2、sed '2i 102_1 xiaowang,CSO' test4.txt #2i,第2行前增加,实际文件并不增加

     3、sed '2a 102_1 xiaowang,CSO 102_2 xiaohuang,PMP' test4.txt #2a,第2行后增加2行文本

     4、sed 2d test4.txt #删除第二行文本

     5、sed 2,5d test4.txt #删除2-5行文本

     6、sed s#white#black#g test4.txt #替换白为黑

     7、sed -n '2p' test4.txt #n取消默认输出,2p查询出指定行

     8、sed -i '2a 102_1 haha,TSE' test4.txt #-i直接更改文件

     

    三、awk:文本分析工具

     1、awk NR==2 test4.txt #输出第2行命令

     2、awk NR==2,NR==5 test4.txt #输出第2-5行命令

     3、awk '{print NR,$0}' test4.txt #awk'墙 显示 行号和这一行的内容 墙'

     4、awk 'NR==2,NR==5 {print NR,$0}' test4.txt #显示第2行到第6行,并且打印行号

     5、awk -F ',' '{print $1,$3}' test4.txt #打印逗号分割的第1列和第3列,$0代表整行

     6、awk '{gsub('10','100',$0);print $0}' test4.txt #使用gsub替换10为100

     7、ifconfig ens33 | awk -F 'inet | netmask ' 'NR==2{print $2}' #两把菜刀分割inet与netmask取得$2第二部分内容,并取第二行的分割结果

     8、ifconfig ens33 | awk -F '[ ]+' 'NR==2{print $3}' #正则表达式[ ]+表示以单个或多个空格分割,完了取第三部分内容

     9、awk -F '/' '{print $3}' test5.txt #以/分割并取出第三部分内容

     10、awk -F '/' '{print $3}' test5.txt|sort  #以/分割并取出第三部分内容,并排序,结合sort

     11、awk -F '/' '{print $3}' test5.txt|sort|uniq -c #去重计数,结合uniq 

     12、awk -F '/' '{hotel[$3]++}END{for(domain in hotel)print domain,hotel[domain]}' test5.txt #通过awk创建数组并通过循环来实现去重统计

  • 相关阅读:
    防盗链(三)nginx实现图片防盗链(referer指令)
    防盗链(二)nginx secure_link下载防盗链
    防盗链(一)资料整理
    如何实现 token 加密
    Socket编程(三)demo举例
    Socket编程-(二)tcp三次握手与四次挥手
    Spring的事务控制,注解和xml配置以及解释
    SpringAop的核心概念和使用,表达式匹配刨析,xml配置通知和环绕通知
    SpringAop的简介
    Spring整合JUnit测试单元
  • 原文地址:https://www.cnblogs.com/mrwhite2020/p/14158953.html
Copyright © 2011-2022 走看看