在介绍三剑客之前,先来认识一下通配符和正则表达式

通配符
    

正则表达式

作用:通过一些特殊字符,来表示一类字符内容

1、字符匹配

  .     任意一个字符

  [ ]   范围内的任意一个字符

  [^ ] 取反

  字符类 [:digit:] [:alnum:] [:alpha:] [:lower:] [:upper:] [:space:] [:punct:]

2、次数匹配

  *    匹配前面的字符0次到多次

  ?  匹配前面的字符0次到1次

  +    匹配前面的字符1次到多次

3、位置锚定

  ^  锚定行首

  $  锚定行尾

  \b  锚定词首和锚定词尾

  \>  锚定词尾

  \<  锚定词首

  <\root\>  匹配root单词

  \{m\}     匹配前面的字符m次

  \{m,n\}  匹配前面的字符m到n次

4、分组

  \(\)

  分组特性:默认清空下,linux系统下回为分组指定变量,变量表示形式\1 \2 \3

day4--文本处理三剑客awk,sed,grep

三剑客用法非常灵活强大,需要在练习中慢慢体会,遂以练习为主。

awk(报告生成器)

     awk作为三剑客的老大,擅长于取列,主要用来做文本输出格式化

     awk在处理文件时是逐行处理的

     在awk中,全部行称为$0,第一个字段称为$1,第二个字段称为$2……

     NR为行号,NF表示最后一行

     BEGIN表示最开始执行,END表示最末尾执行,因为这种特性,BEGIN常常用来赋值

     awk  [选项] [处理命令(脚本)]  [文件]

awk -F 指定输入文件折分隔符
awk -v 赋值一个用户定义变量
awk -f 从脚本文件中读取awk命令

     例1、输出/etc/passwd第一行的第一个域

      

      例2、打印出/etc/passwd的第3个域和第5个域

      

      例3、匹配/var/log/message中,带有erro关键字的相关信息

      

      例4、输出/etc/passwd中文件名,行数,列数,和整行信息     

      awk -F ':' '{print FILENAME, NR , NF ,$0}' /etc/passwd

      例5、使用冒号分隔符,查询最后一列

      

      例6、使用awk输出第一块网卡的ip地址

      

 

sed(流处理器)

    sed作为三剑客的老二,擅长取行,替换和数据搜寻  

    sed [选项] [脚本] [文件]

sed -e 以选项中指定的脚本来处理输入结果
sed -f 以选项中指定的脚本文件来处理输入结果
sed -n 只显示处理后结果
sed -i 替换

    例1、查看/etc/passwd5-10行

      

      这个p代表print打印,同理,d代表delete删除

    例2、搜寻/etc/passwd中有root关键字的行

      

    例3、新建一个文件,并删除2到4行

      

grep(文本行过滤工具)

    grep [option]... PATTERN [FILE]

               PATTERN一般使用两种方法,正则表达式和通配符

    egrep = grep -E 使用扩展的正则表达式进行匹配

    fgrep = fast grep 只使用文件通配符进行匹配

    grep 默认使用正则表达式进行文本匹配

grep -P使用perl语言的正则表达式引擎进行搜索
grep -f指定文件
grep -i 忽略大小写
grep -v反选
grep --color=auto 语法着色
grep -c统计
grep -o输出时仅显示匹配内容(默认输出的是匹配到的行)
grep -n显示行号
grep -w只匹配与整个单词匹配的行

    例1、显示/proc/meminfo文件中大小s开头的行

      

     例2、显示/etc/passwd文件中不以/bin/bash结尾的行

      

     例3、显示/etc/passwd文件中UID最大的用户的用户名

      

    例4、如果用户root存在,显示其默认的shell程序

      

      例5、找出/etc/passwd中的两位或三位数

      

linux100day(day4)--文本处理三剑客的更多相关文章

  1. 文本处理三剑客之sed命令

    第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...

  2. 文本处理三剑客之 Sed ——一般编辑命令

    sed简介 sed (stream editor for filtering and transforming text) 是Linux上的文本处理三剑客之一,另外两个是grep和awk. sed又称 ...

  3. 文本处理三剑客之 grep

    grep简介 grep(Global search REgular expression and Print out the line)是Linux上的文本处理三剑客之一,另外两个是sed和awk. ...

  4. shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)

    文本处理三剑客:1.grep  2.sed  3.awk 一.grep:(过滤) grep的使用,主要的参数有: -n  :显示行号:-o  :只显示匹配的内容-q  :静默模式,没有任何输出,得用e ...

  5. Linux文本处理三剑客之sed

    推荐新手阅读[酷壳]或[骏马金龙]开篇的教程作为入门.骏马兄后面的文章以及官方英文文档较难. [酷壳]:https://coolshell.cn/articles/9104.html [骏马金龙-博客 ...

  6. Linux文本处理三剑客之grep及正则表达式详解

    Linux文本处理三剑客之grep及正则表达式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux文本处理三剑客概述 grep: 全称:"Global se ...

  7. 关于Linux文本处理“三剑客”的一些小操作。

    Linux文本处理“三剑客”,即grep.sed.awk,这是Linux中最核心 的3个命令. 一.首先做个简单的介绍: 1.awk:linux三剑客老大,过滤,输出内容,一门语言.NR代表行号. 2 ...

  8. Linux文本处理三剑客之——grep

    一Linux文本处理三剑客之——grep Linux文本处理三剑客都支持正则表达式 grep :文本过滤( 模式:pattern) 工具,包括grep, egrep, fgrep (不支持正则表达式) ...

  9. Linux 文本处理三剑客之grep

    文本处理都要使用正则表达式,正则表达式有: 基本正则表达式:grep或者egrep -G 扩展正则表达式:egreo或者grep -E Linux 文本处理三剑客: sed:stream editor ...

  10. 文本处理三剑客与shell正则表达式

    文本处理三剑客 提到对于文本的处理上,除了vim这个强大的编辑器之外,还有使用命令的形式去处理你要处理的文本,而不需要手动打开文本再去编辑.这样做的好处是能够以shell命令的形式将编辑和处理文本的工 ...

随机推荐

  1. golang开发:类库篇(三)命令行工具cli的使用

    为什么要使用命令行 觉得这个问题不应该列出来,又觉得如果初次进行WEB开发的话,可能会觉得所有的东西都可以使用API去做,会觉得命令行没有必要. 其实,一个生产的项目命令行是绕不过去的.比如运营需要导 ...

  2. 关于红黑树(R-B tree)原理,看这篇如何

    学过数据数据结构都知道二叉树的概念,而又有多种比较常见的二叉树类型,比如完全二叉树.满二叉树.二叉搜索树.均衡二叉树.完美二叉树等:今天我们要说的红黑树就是就是一颗非严格均衡的二叉树,均衡二叉树又是在 ...

  3. WinForm控件之【ComboBox】

    基本介绍 下拉文本框应用较为广泛,在winfrom控件当中使用设置也是相对的简单,主要用于存在多种选择的单选操作场景. 常设置属性.事件 DataSource:绑定加载项的数据源,设置属性Displa ...

  4. I/O:Reader

    FileReader: /* 用来读取字符文件的便捷类.此类的构造方法假定默认字符编码和默认字节缓冲区大 小都是适当的.要自己指定这些值,可以先在 FileInputStream 上构造一个 Inpu ...

  5. Mac上pycharm集成pyspark

    前提: 1.已经安装好spark.我的是spark2.2.0. 2.已经有python环境,我这边使用的是python3.6. 一.安装py4j 使用pip,运行如下命令: pip install p ...

  6. aspnetcore 刷新Session Id总是改变

    public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; ...

  7. RecycleView文字吸顶,点击吸顶布局刷新数据

    实现效果 需求 Recycle有一个头布局,可以跟随列表进行滑动 点击头布局之后可以重新加载列表数据 随着头布局的消失,留下一个可点击的布局(该布局在头布局中) 效果类似下图: 淘宝的商品列表,随着我 ...

  8. 2017day1

    http://www.cnblogs.com/alex3714/articles/5465198.html 四.Python安装 windows 1 2 3 4 5 6 7 1.下载安装包     h ...

  9. nginx目录穿越漏洞复现

    nginx目录穿越漏洞复现 一.漏洞描述 Nginx在配置别名(Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞. 二.漏洞原理 1. 修改nginx.conf,在如下图位置添加如下配置 在如 ...

  10. zstack源码编译安装(1.7.x版本)

    图片没粘贴过来,请看本人gitbook吧https://www.gitbook.com/book/jingtyu/how-to-learn-zstack-code 运行环境 zstack的安装方式有很 ...