Linux shell编程之awk&sed用法详解

awk的用法     

  1. awk的使用

              基本功能:在文件或字符串中基于指定规则浏览和抽取信息。awk抽取信息後,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件信息。
              调用方式:1. 命令行方式
                             2. 将所有awk命令插入一个文件,并使awk程序可执行,然后使awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。
                             3. 将所有的awk命令插入一个单独文件,然后调用。
              选项说明:-F 域符号 缺省为空格
                             -f 指明awk脚本
       2. 模式和动作
              1. 任何awk语句都由模式和动作组成。在一个awk脚本中可能有许多语句。
              模式部分决定动作语句何时触发及触发事件。模式缺省为执行状态。
              处理即对数据进行的操作。
              2. 模式可以是任何条件语句或复合语句或正则表达式。
              3. 模式包括两个特殊字段BEGIN和END。
 
       域和记录
              域标识:$1,$2,…,$n。用逗号做域分隔。$0表示所有域。
              打印域或所有域:print命令
       注:当碰到awk错误时,可相应查找:
              1. 确保整个awk命令用单引号括起来
              2. 确保命令内所有引号成对出项
              3. 确保用花括号括起动作语句,用圆括号括起条件语句
              4. 不要忘记使用花括号
       条件操作符
~ 匹配正则表达式
              !~  不匹配正则表达式
       内置变量:
                     NF:每一条记录中域名数
                             是将变量$PWD的返回值传入awk并显示其目录。
                             可以利用NF获取文件名
                     注:但这里指定域分隔符为/
NR:记录个数
 
sed 用法
       1. 是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。
       2. 通过行号或正则表达式指定要改变的文本行
       3. sed不与初始文件打交道,而只与它的一个拷贝打交道,如果操作结果没有重定向到一个文件,那么将输出到屏幕。
       调用方式:
              a. 命令行方式
              b. 将sed命令插入脚本文件中,然后调用sed
              c. 将sed命令插入脚本文件中,使得脚本文件为可执行。
       保存sed输出
              重定向到一个新文件 >
       sed中定位文本的方式
              x          一行号
              x,y       行号范围
              /pattern/ 查询包含模式的行
              /pattern/pattern/     查询包含两个模式的行
              /pattern/,x              在指定行号上查询匹配模式的行
              x,/pattern/              通过行号和模式查询匹配行
              x,y!                   查询不包含行号x,y的行
       sed编辑命令
              p     打印文本
              匹配元字符$前,必须使用反斜线/
              =  打印行号      使用-e选项
              如果既打印行号又打印匹配行,必须使用两个sed命令,并使用-e选项
       附加文本
              使用符号a/ ,可以指定文本一行或多行附加到指定行。若不指定文本放置位置位置,sed缺省放置在每一行后面。
              创建sed脚本文件
                     创建脚本文件,第一行为:
                     #!/bin/sed -f        ----注 说明sed命令解释行。脚本在这一行查找sed以运行命令,这里定位在/bin
              插入文本:在指定行前面插入,它也只接受一个地址。
              删除文本:d
              替换命令用替换模式替换指定模式
       使用sed实现的一个重要功能是在另一个系统中下载的文件中剔除控制字符。
              1. 使用s/-*//g删除横线-----
              2. 使用/^$s/d删除空行
              3. 使用$d删除最后一行
              4. 使用1d删除第一行
              5. 使用awk{print $1}打印第一列
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值