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

通配符
    

正则表达式

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

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  [选项] [处理命令(脚本)]  [文件]

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

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

      

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

      

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

      

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

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

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

      

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

      

 

sed(流处理器)

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

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

  1. sed -e 以选项中指定的脚本来处理输入结果
  2. sed -f 以选项中指定的脚本文件来处理输入结果
  3. 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 默认使用正则表达式进行文本匹配

  1. grep -P使用perl语言的正则表达式引擎进行搜索
  2. grep -f指定文件
  3. grep -i 忽略大小写
  4. grep -v反选
  5. grep --color=auto 语法着色
  6. grep -c统计
  7. grep -o输出时仅显示匹配内容(默认输出的是匹配到的行)
  8. grep -n显示行号
  9. 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. 【POJ - 3050】Hopscotch (dfs+回溯)

    -->Hopscotch 这接写中文了 Descriptions: 奶牛们以一种独特的方式玩孩子们的跳房子游戏. 奶牛们创造了一个5x5的格子 他们熟练地跳上其中的一个格子,可以前后左右地跳(不 ...

  2. C# 使用XDocument实现读取、添加,修改XML文件

    新建xml文件编写如下内容做测试使用 需要引用:System.Xml.Linq 命名空间 一.读取XML 读取所有文档  筛选子元素为attribute1的元素,结果是IEumerable 通过Lin ...

  3. CDQZ集训DAY2 日记

    依然很爆炸. T1上来有50分暴力分,打完后注意到了后50分的随机数据,开始想怎么去对付他.然后就开始思考随机数据意味着什么.想了想,想打一个扫描线或者分治.决策了一下还是打了一个扫描线+链表.然而只 ...

  4. 理解vue-loader

    事情的起源是被人问到,一个以.vue结尾的文件,是如何被编译然后运行在浏览器中的?突然发现,对这一块模糊的很,而且看mpvue的文档,甚至小程序之类的都是实现了自己的loader,所以十分必要抽时间去 ...

  5. [译]Vulkan教程(33)多重采样

    [译]Vulkan教程(33)多重采样 Multisampling 多重采样 Introduction 入门 Our program can now load multiple levels of d ...

  6. MyBatis where、set、trim标签的用法

    <!-- 4.3.1 where用法 <where>标签的作用:如果该便签包含的元素中有返回值,就插入一个where:如果 where后面的字符串是一and或or开头的,就将它们剔除 ...

  7. 文件传输——TCP/IP协议介绍总结

    一.链路层 数据链路层的工作特性: 1.为IP模块发送和接收IP数据报2.为ARP模块发送ARP请求和接收ARP应答(ARP:地址解析协议,将IP地址转换成MAC地址)3.为RARP发送RARP请求和 ...

  8. SQL SERVER 活动监视-sys.dm_exec_requests

    sys.dm_exec_requests (Transact-SQL)应用: 针对 SQL Server 内正在执行的每个请求返回一行.sys.dm_exec_connections.sys.dm_e ...

  9. Spark Week1 HomeWork

    package wikipedia import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org. ...

  10. SQLyog12最新版破解

    1.SQLyog-12.2.4-0.x64Trial.exe,直接去官网下载. 2.修改注册表项   开始-运行-regedit ,进入注册表  HKEY_CURRENT_USER\Software\ ...