WEB开发网
开发学院软件开发Shell Linux shell编程之awk与sed使用详解 阅读

Linux shell编程之awk与sed使用详解

 2009-06-30 04:10:00 来源:WEB开发网   
核心提示: Linux shell编程之awk的用法 1. awk的使用 基本功能:在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息後,Linux shell编程之awk与sed使用详解,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件信息,这里定位在/bin 插入文本:在指定行前面插入,它也只接受

   Linux shell编程之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:记录个数

   Linux shell编程之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}打印第一列

Tags:Linux shell 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接