2021-01-08

Sed命令和awk基础

Sed命令
概念:用无交互式的方式来编辑文本,又称流编辑模式:意思就是对文件里的内容从第一行开始,一行一行的处理数据,就是逐行处理,然后把整行发送到屏幕上
Sed也是支持正则表达式的,使用正则表达式加参数-r
处理过程:

  1. 先保存到一个临时缓存区
  2. 然后处理临时缓存区中的数据,发送到屏幕上
  3. 处理完临时缓存区的数据之后就会删除,接着处理下一行
  4. 直到最后一行处理完毕
    注意:sed默认不会修改源文件数据,使用-i之后才会直接修改文件
    格式:sed [选项] ‘[动作指令]’ 文件名
    选项:-n 屏蔽默认输出
    -e 执行多个sed指令
    -i 直接修改源文件,
    -i.bak 编辑源文件同时创造.bak备份文件
    -r 使用拓展的正则表达式
    动作指令:p 打印
    s 替换指定字符串
    d 删除行
    a 在当前行下面插入文件
    i 在当前行上面出入文件
    c 把选定的行改为新的指定文件
    r 读取文件,将一个独立文件的数据插入到当前数据流的指定位置
    w 另存为
    注意:动作指令是要用单引号或双引号括起来用
    练习:只替换每行出现的第一个词
    在这里插入图片描述在这里插入图片描述
    多行替换:
    在这里插入图片描述
    在这里插入图片描述
    取ens33网卡ip地址
    在这里插入图片描述
    指定行号删除
    在这里插入图片描述
    在文件尾部添加新内容
    在这里插入图片描述
    修改selinux文件
    在这里插入图片描述
    去除行首数字在这里插入图片描述
    第六章awk应用
    1.awk的基础应用
    概念:AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一
    awk:它是一个数据处理工具,也是一个逐行扫描文件。
    格式:awk [-F field-separator] ‘commands’ filename
    [-F field-separator]:这个选项如果是空文件则不必加,如果是像/etc/passwd文件则此文件各域以冒号作为分隔符,则必须指明-F选项,如:awk -F:
    'commands’是要执行的命令动作
    filename 处理的文件名,可以是多于一个文件的文件列表,awk将按顺序处理列表中的每个文件。
    在不指名-F域分隔符的情况下,默认的域分隔符是空格或tab键。
    常用选项:-F 指定以fs作为输入行的分隔符
    -v 设置一个变量,初始值为val
    完整格式:awk [-F field-separator] ‘匹配规则{执行命令}’ filename
    任何awk语句都是由’匹配规则{执行命令}'组成,一个awk中可以有多个语句
    匹配规则:“条件类型;awk保留字:BEGIN和END
    关系做算符:> ,<,>=,<=,==,!=不等于
    匹配表达式:~(匹配) !~(不匹配)
    正则表达式:/正则/可以写入字符,可以支持正则表达式
    逻辑运算符:&&逻辑与 || 逻辑或”
    awk 使用数据字段变量
    在 awk 中,默认的字段分隔符是任意的空白字符(例如空格或制表符)。
    在文本行中,每个数据字段都是通过字段分隔符划分的(-F选项指定的分隔符)
    awk 的主要特性之一是其处理文本文件中数据的能力,它会自动给一行中的每个数据字段分配一个变量
    $0 代表整个文本行;
    $1 代表文本行中的第 1 个数据字段;
    $2 代表文本行中的第 2 个数据字段;
    $n 代表文本行中的第 n 个数据字段。
    执行命令:awk的执行命令在大括号{ }内指明。动作大多数用来打印(即print指令)
    动作 action: 格式化输出print 流程控制语句if ,while,for
    BEGIN和END
    语法:awk [options] ‘BEGIN{ print “start” } 匹配规则{ commands } END{ print “end” }’ filename
    因为BEGIN和END是关键字。所以必须大写,这两部分是开始块和结束块
    BEGIN:旦BEGIN后的动作执行一次,当awk开始从文件中读入数据时,BEGIN 的条件就不再成立,所以BEGIN定义的动作只能被执行一次
    通过BEGIN开始块来设置变量和标题
    END:ND也是awk的保留字,不过刚好和 BEGIN 相反。END 是在 awk 程序处理完所有数据,即将结束时执行的。END 后的动作只在程序结束时执行一次。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值