如何使用awk和sed 技巧.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何使用awk和sed 技巧

第十二讲 使用awk和sed 本节内容 awk的基础知识 awk的模式功能 模式匹配时的动作 awk的输入方式 awk的输出方式 用Shell来运行awk sed文件和sed命令 awk概述 awk程序最初是由Aho、Kernighan、Weiberger在1977年做为一个模式查寻语言共同创作出来的。 几个版本: awk nawk(new awk)。 gawk,是awk命令加强的公共流通版, 它是GNU软件系统的一部份。 awk概述 调用awk 命令行方式,如: awk [-F fild-separator] ‘commands input-file(s) 将所有awk命令插入一个文件,并使awk程序可执行,然后用awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。 awk概述 第三种方式是将所有的awk命令插入一个单独文件,然后调用。 awk –f awk_script_file input_file 与大部分UNIX系统命令一样,awk可以使用标准的输入与输出设备。如果没有确定输入的文件,awk程序会自动读取并作用于标准输入设备。该功能允许把awk程序做为管道命令的一部分来使用。 awk的基本结构 不带模式:$awk ‘{print $1}’ phone $1:每行的第一个字段,$0:整个行(记录) 字段分隔符:默认空格或tab键,若要自己指定使用 –F选项,$awk –F , ‘/abc/{print}’ phone 不带操作:$awk ‘length($2)6’ phone 没有操作,则默认打印整行 用户可以省略其中任意一个 awk -F: length($1)5 {print $1} /etc/passwd awk使用标准输入输出 若没有确定的文件输入,标准输入为键盘 如:$awk ‘{print $1}’ awk使用标准输入输出 重定向 如:$awk ‘{print $1}’ file_1 file_2 多个输入文件 如: $awk ‘{print $1}’ file_1 file_2 多行的awk 注释 使用#符号,以#开始直到一行结束 多个语句的程序需用“;”分开 如: $awk ‘{temp=$1;$1=$2;$2=temp;print}’ phonephone_new 模式 一般表达式 是用户想匹配的一串字母、数值或特殊的字符。 比较模式 是一种可以将模式中的两个元素进行比较。 复合模式 是一种采用各种逻辑运算符:与()或(||)、非(!)和各多个模式合起来使用的方式。用户可以使用这种方式查找文件中包含某两个字的行。 模式 范围模式 这种模式用于匹配那些出现在两个不同的模式之间的所有行。它们是被用于查询一组句子或结构化组织的文件中的记录组,例如一个按字母排序的人名数据库。 开始与结束模式 这是一种特殊内建模式,它向用户的awk程序发送指令使之在循环之前做出某操作。 模式 字符串模式 awk程序包含很多描述不同字符串的机制;这实际上会使一些初学者非常迷惑。用户可以使用一个简单的字符串模式,它包括含有特殊字符的一般表达式,或是含有例如比较运算符之类的字符串运算符。 模式匹配的最简单的方式是查询某行中的某一特定的字或字符串。 一般表达式中的特殊字符 比较字符串 波浪号~ 检查是否两个字符串相匹配 如:$2 ~ /^15$/ 第二个字符段是否只含15 不含匹配字符串可使用 !~ 比较字符串 =和!= 如:$1=$2 $1!=3 $1!=“pencils” == 如:$1== $2 如:“regular”“relation” 模式 复合模式 复合模式是把多个模式用逻辑运算符(与),||(或)和!(非)结合起来而组成的模式。 如: awk ‘/$110 $220/{print $3}’file_name 模式 范围模式 句法为:pattern1,pattern2 awk ‘/2/,/5/{print}’file_name 模式 开始(BEGIN)模式:让用户指定在第一条输入记录被处理之前所发生的动作,通常可在这里设置全局变量。 结束(END)模式:让用户在最后一条输入记录被读取之后发生的动作。 例子 BEGIN{print “Title”} END {print NR} 动作 变量 awk程序允许用户自己设置变量,或给它们赋值,以及对它们进行操作。变量可以包括字符串与数值。 一个变量名可以由字母与数字序列组成,且开头必须使用字母。下划线也可以作为变量的一部分。 动作 数值运算符及其操作 awk程序提供了大量的函数及

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档