shell常用命令详解.ppt

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

shell常用命令详解 AWK简介 AWK是一种优良的文本处理工具 :可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言:AWK 程序设计语言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。 尽管操作可能会很复杂,但命令的语法始终是: awk {pattern + action}? 内置变量 FNR 当前文件中的记录号 NR 到目前为止记录数 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 OFS 输出域分隔符 AWK用法-简单列输出 awk -F “|” ‘{print $n}’ -F: 表示分隔符,多个分隔符可以用-F’[]’ 表示,不加-F默认空格分割 N:表示第几列,全列输出用$0 AWK流程控制-BEGIN,END 在awk 中两个特别的表达式,BEGIN和END,提供BEGIN和END的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作。任何在BEGIN之后列出的操作(在{}内)将在awk开始扫描输入之前执行,而END之后列出的操作将在扫描完全部的输入之后执行。因此,通常使用BEGIN来显示变量和预置(初始化)变量,使用END来输出最终结果 例:统计各个业务发送短信条数 awk BEGIN{FS=|;OFS=\t;print service_type,send_count} {a=$17;op[a]++;} END{for(a in op)printf(%s\t%d\n,a,op[a])} submit_extlog AWK流程控制-if语句 格式: if(表达式) 语句1 else 语句2 If(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式n) 语句n else 语句n+1 AWK流程控制-while,do while语句 格式: while(表达式) 语句 例:awk -F”|” ‘{while($12)print $0}’ do { 语句 }while(表达式) 例:awk -F”|” ‘{do{print $0}while($12)}’ AWK流程控制-for语句 格式: for(初始表达式;终止条件;步长表达式) {语句} 例:awk -F”|” ‘{for(i=0;i=NF;i++)printf(“%s\n”,$i)}’ 内置函数-内置字符串函数实例应用 cat ip.conf 172.25.3.15 alexsha mqq_op@2013h1 172.25.3.16 alexsha mqq_op@2013h1 172.25.3.17 alexsha mqq_op@2013h1 172.25.3.19 alexsha mqq_op@2013h1 172.25.3.13 alexsha mqq_op@2013h1 172.25.3.18 alexsha mqq_op@2013h1 172.25.3.20 alexsha mqq_op@2013h1 172.25.3.24 alexsha mqq_op@2013h1 172.25.3.23 alexsha mqq_op@2013h1 gsub awk ‘{gsub($3,“mqq2005”);print $0}’ ip.conf #某列全部替换 awk ‘{gsub(“mqq”,“abc”,$3);print $0}’ ip.conf #某列部分替换 index awk ‘{print index($3,“op”)}’ ip.conf #显示密码列”op”第一次出现的位置 length awk ‘{print length($2)}’ ip.conf #求用户列长度 match awk ‘{print match($1,“15”)}’ ip.conf #找到第一列出现15的位置,找不到则显示0 split awk ‘{split($1,op,“.”);print op[1],op[2],op[3]}’ ip.conf #分割ip sub 和gsub类似,区别:gsub是全部替换,相当于sed ‘s//g’ ;sub是替换第一次出现,相当于sed s//‘ substr awk ‘{print substr($2,2,4)}’ ip.conf #显示第2列从第2个位置开始的后4位 sprintf aw

文档评论(0)

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

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

1亿VIP精品文档

相关文档