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

通配符
    

正则表达式

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

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. 浅谈 Attention 机制的理解

    什么是注意力机制? 注意力机制模仿了生物观察行为的内部过程,即一种将内部经验和外部感觉对齐从而增加部分区域的观察精细度的机制.例如人的视觉在处理一张图片时,会通过快速扫描全局图像,获得需要重点关注的目 ...

  2. 获取一个整数所有的质因数(C语言实现)

    一.题目要求 1. 用户输入任意一个整数,要求程序输出此整数所有的质因数: 2. 用户可以反复输入,直至输入字符'q'退出程序. 二.分析 质因数的概念大家可以问度娘. 题目关键有几个要点,分析透了这 ...

  3. ItemsControl绑定的数据模板显示不同样式:模板选择器

    总所周知,wpf提供了数据模板,列表控件可以绑定数据实现批量显示同类型数据.不过同个数据模板显示不同的样式怎么办?这时我们可以用模板选择器. 首先我们可以将数据绑定到首先定义资源样式 <Data ...

  4. C#3.0新增功能10 表达式树 02 说明

    连载目录    [已更新最新开发文章,点击查看详细] 表达式树是定义代码的数据结构. 它们基于编译器用于分析代码和生成已编译输出的相同结构.表达式树和 Roslyn API 中用于生成分析器和 Cod ...

  5. [小米OJ] 8. 最少交换次数

    求逆序对数即可 function solution(line) { var nums = line.split(","); var res = 0; for (let i = 0; ...

  6. Java EE.JSP.脚本

    脚本是<%与%>之间Java语言编写的代码块. 1.输出表达式 <%=表达式%>输出表达式的计算结果. 2.注释 1)输出到客户端的注释:<!-comment-> ...

  7. thinkphp项目阿里云ECS服务器部署

    [日记]thinkphp项目阿里云ECS服务器部署   项目本地开发告一段落.准备上传到服务器上测试 技术组成 thinkphp+mysql+阿里ECS  代码管理方式git 一.阿里ECS服务器配置 ...

  8. Android CHM文件阅读器

    CHM格式是1998年微软推出的基于HTML文件特性的帮助文件系统.以替代早先的winHelp帮助系统,它也是一种超文本标识语言.在Windows 98中把CHM类型文件称作“已编译的HTML帮助文件 ...

  9. 入门训练-1.A+B问题

    问题描述 输入A.B,输出A+B. 说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标. 输入格式 输入的第一行包括两个整数,由空格分隔,分别表示A.B. 说明:“输入格式”是描述在测试你 ...

  10. burpsuit用法

    1. 学习Proxy首先看标红,intercept is on 为拦截状态  其对应的intercept is off 为非拦截状态,设置完代理后打开拦截状态 ,浏览器发起的请求会被burpsuite ...