shell常用命令详解_第1页
shell常用命令详解_第2页
shell常用命令详解_第3页
shell常用命令详解_第4页
shell常用命令详解_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 shell常用命令详解常用命令详解AWK简介AWK是一种优良的文本处理工具 :可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言:AWK 程序设计语言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。尽管操作可能会很复杂,但命令的语法始终是: awk pattern + action 内置变量FNR 当前文件中的记录号NR 到目前为止记录数FS 输入域分隔符,默认为一

2、个空格RS 输入记录分隔符NF 当前记录里域个数OFS 输出域分隔符AWK用法-简单列输出awk -F “|” print $n -F: 表示分隔符,多个分隔符可以用-F 表示,不加-F默认空格分割N:表示第几列,全列输出用$0AWK流程控制-BEGIN,END在awk 中两个特别的表达式,BEGIN和END,提供BEGIN和END的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作。任何在BEGIN之后列出的操作(在内)将在awk开始扫描输入之前执行,而END之后列出的操作将在扫描完全部的输入之后执行。因此,通常使用BEGIN来显示变量和预置(初始化)变量,使用END来输出最终结果例

3、:统计各个业务发送短信条数awk BEGINFS=|;OFS=t;print service_type,send_counta=$17;opa+;ENDfor(a in op)printf(%st%dn,a,opa) submit_ext_20140905.logAWK流程控制-if语句格式: if(表达式)语句1else语句2If(表达式1)语句1else if(表达式2)语句2else if(表达式n)语句nelse语句n+1AWK流程控制-while,do while语句格式:while(表达式)语句例:awk -F”|” while($12)print $0 do语句while(表达式

4、)例:awk -F”|” doprint $0while($12) AWK流程控制-for语句格式:for(初始表达式;终止条件;步长表达式)语句例:awk -F”|” for(i=0;i=NF;i+)printf(“%sn”,$i)内置函数-内置字符串函数实例应用cat ip.conf 172.25.3.15 alexsha mqq_op2013h1172.25.3.16 alexsha mqq_op2013h1172.25.3.17 alexsha mqq_op2013h1172.25.3.19 alexsha mqq_op2013h1172.25.3.13 alexsha mqq_op2

5、013h1172.25.3.18 alexsha mqq_op2013h1172.25.3.20 alexsha mqq_op2013h1172.25.3.24 alexsha mqq_op2013h1172.25.3.23 alexsha mqq_op2013h1gsubawk gsub($3,“mqq2005”);print $0 ip.conf #某列全部替换awk gsub(“mqq”,“abc”,$3);print $0 ip.conf #某列部分替换indexawk print index($3,“op”) ip.conf #显示密码列”op”第一次出现的位置lengthawk p

6、rint length($2) ip.conf #求用户列长度 matchawk print match($1,“15”) ip.conf #找到第一列出现15的位置,找不到则显示0splitawk split($1,op,“.”);print op1,op2,op3 ip.conf #分割ipsub和gsub类似,区别:gsub是全部替换,相当于sed s/g ;sub是替换第一次出现,相当于sed s/substrawk print substr($2,2,4) ip.conf #显示第2列从第2个位置开始的后4位sprintfawk a=sprintf(“%s|%s|%s”,$1,$2,

7、$3);print a ip.conf #格式转换内置函数-内置时间函数函数名说明mktime( YYYY MM DD HH MM SS DST)生成时间格式strftime(format , timestamp)格式化时间输出,将时间戳转为时间字符串,具体格式,见下表 systime()得到时间戳,返回从1970年1月1日开始到当前时间(不计闰年)的整秒数创建指定时间(mktime,strftime使用)awk BEGINtstamp=mktime(2014 09 09 17 32 12);print strftime(%c,tstamp); awk BEGINtstamp1=mktime(

8、2014 09 09 17 32 12);tstamp2=mktime(2014 09 01 00 00 00);print tstamp1-tstamp2 内置函数-内置时间函数格式描述%a星期几的缩写(Sun)%A星期几的完整写法(Sunday)%b月名的缩写(Oct)%B月名的完整写法(October)%c本地日期和时间%d十进制日期%D日期 08/20/99%e日期,如果只有一位会补上一个空格%H用十进制表示24小时格式的小时%I用十进制表示12小时格式的小时%j从1月1日起一年中的第几天%m十进制表示的月份%M十进制表示的分钟%p12小时表示法(AM/PM)%S十进制表示的秒%U十进

9、制表示的一年中的第几个星期(星期天作为一个星期的开始)%w十进制表示的星期几(星期天是0)%W十进制表示的一年中的第几个星期(星期一作为一个星期的开始)%x重新设置本地日期(08/20/99)%X重新设置本地时间(12:00:00)%y两位数字表示的年(99)内置函数-一般函数函数函数说明说明close( Expression )用同一个带字符串值的 Expression 参数来关闭由 print 或 printf 语句打开的或调用 getline 函数打开的文件或管道。如果文件或管道成功关闭,则返回 0;其它情况下返回非零值。如果打算写一个文件,并稍后在同一个程序中读取文件,则 close

10、语句是必需的。system(Command )执行 Command 参数指定的命令,并返回退出状态。Expression | getline Variable 从来自 Expression 参数指定的命令的输出中通过管道传送的流中读取一个输入记录,并将该记录的值指定给 Variable 参数指定的变量。如果当前未打开将 Expression 参数的值作为其命令名称的流,则创建流。创建的流等同于调用 popen 子例程,此时 Command 参数取 Expression 参数的值且 Mode 参数设置为一个是 r 的值。只要流保留打开且 Expression 参数求得同一个字符串,则对 getl

11、ine 函数的每次后续调用读取另一个记录。如果未指定 Variable 参数,则 $0 记录变量和 NF 特殊变量设置为从流读取的记录。getline Variable filename submit_ext_20140913.logSed简介sed命令的功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大,sed全称是:Stream EDitor 调用sed命令有两种形式: sed options command file(s) sed options -f scriptfile file(s) Sed功能简介 删除:d命令sed 2d e

12、xample-删除example文件的第二行。sed 2,$d example-删除example文件的第二行到末尾所有行。 sed $d example-删除example文件的最后一行。 sed /test/d example-删除example文件所有包含test的行。 替换:s命令sed s/test/mytest/g example-在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。 sed -n s/test/mytest/p example-(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。 Comm简介linux系统下的comm命令是一个非常实用的文件对比命令。 comm命令功能: 选择或拒绝两个已排序的文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论