perl语言中的AWK之基础篇

perl语言中的AWK之基础篇,第1张

概述perl 语言中的AWK之基础篇 一 :AWK与perl 1. Perl,我们并不陌生了到目前为止,它在web编程中的强大作用,对于每个web开发者而言,重要性不言而喻, 由于perl借取了C、sed、awk、shell scripting以及很多其他程序语言的特性。 其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。

perl 语言中的AWK之基础篇:AWK与perl
  1. Perl,我们并不陌生了到目前为止,它在web编程中的强大作用,对于每个web开发者而言,重要性不言而喻,    由于perl借取了C、sed、awk、shell scripting以及很多其他程序语言的特性。    其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。    简而言之,Perl 象C一样强大,象awk、sed等脚本描述语言一样方便,由此看来在perl语言中,AWK占据着重要的一席之地。    这里我们不去重点的说perl语句而是介绍一下其重要的组成部分AWK的基础内容,    下面我们就来揭开perl中的awk的神秘面纱吧!   
二:AWK简介
  what is awk? 对于初学者来说这是个模式的代名词,其实awk是三位创造者Aho、Weinberger和Kernighan统称,    简单的来说AWK 是一种用于处理文本的编程语言工具      wk可以做些什么?由于其可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。    它具备了一个完整的语言所应具有的几乎所有精美特性,所以其三位创建者已将它正式定义为“样式扫描和处理语言”。    它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。    
三: AWK处理文本的流程:
  awk在处理文件时,首先扫描文件中的每一行,查找与命令行中所给定内容相匹配的模式。    如果发现匹配内容,则进行下一个编程步骤。如果找不到匹配内容,则继续处理下一行   
四: AWK的使用
  AWK的 语法格式:      Awk [options] ‘scritpts’  filename       或者awk [options] ‘partern [actions] ’ filename      [options]:      -F: 指定awk 处理文本的行时的分隔符 
 例如 

  常用的awk内置的三个变量 OFS  FS  NF       -FS 指定字段分隔符    例如   
  Awk  -v FS=: ‘{print }’ /etc/passwd    

  -v OFS= 定义awk 输出时的字符分隔符     例如: Awk –v OFS=# ‘{print ,}’ /etc/passwd  

  注:上例中的在输入和,,的形式是分别输出和.  的形式是将和合并后输出      如    

   NF 表示awk处理一行时的字段总数       例如:输出一行的最后一个字段      Awk ‘{print $NF}’ /etc/passwd  

  注:显示一行的倒数第三个字段     

  printf 的使用      格式:printf format item1,item2,……       注意:      1:与print命令的最大不同是,printf 需要指定format      2:format用于指定后面的每个item的输出格式      3:printf语句不会自动打印换行符 \n      4:format格式的指示符都以%开头,后跟一个字符      format:      %c :显示字符的ASCII码      %d,%i :显示字符的十进制整数      %e,$E 科学计数法显示数值      %f :显示浮点数      %g ,%G :以科学计数法的格式或者浮点数的格式显示数值      %s  显示字符串      %u  显示无符号整数      %% 显示%自身      另外format 还可以添加修饰符      N:显示宽度      -:左对齐      +:显示数值符号      例如:  

  Awk 中使用 输出重定向      print items > output-file      print items >> output-file      print items | command     
awk的 *** 作符: 
  算术 *** 作符:      -x: 负值      +x: 转换为数值;      x^y:       x**y: 次方      x*y: 乘法      x/y:除法      x+y:      x-y:      x%y:      字符串 *** 作符:      只有一个,而且不用写出来,用于实现字符串连接;      赋值 *** 作符:      =      +=      -=      *=      /=      %=      ^=      **=      ++      --      需要注意的是,如果某模式为=号,此时使用/=/可能会有语法错误,应以/[=]/替代;      布尔值     awk中,任何非0值或非空字符串都为真,反之就为假    
   比较 *** 作符:      < y       True if x is less than y.       <= y  True if x is less than or equal to y.       > y       True if x is greater than y.       >= y  True if x is greater than or equal to y.       x == y  True if x is equal to y.       x != y  True if x is not equal to y.       x ~ y      True if the string x matches the regexp denoted by y.   
x !~ y  True if the string x does not match the regexp denoted by y.    subscript in array    True if the array array has an element with the subscript subscript    表达式间的逻辑关系符:    &&   ||  条件表达式:   selector?if-true-exp:if-false-exp    selector :条件表达式    if-true-exp:statement    if-false-exp: statement  
下面我们来重点说说awk的模式使用
  awk的模式:      awk [options] ‘parten’ ‘print ….’ filename      parten:      1:正则表达式 格式为/regular Expression/      2: 表达式  其值非0或者非空字符时满足的条件  例如:$1 ~ /user/ 或者 $1 == ‘user’      用运算符~(匹配)和 ~ !(不匹配)      例如:    

  指匹配范围格式为pat1,pat2 (pat代表模式)同sed用法       BEGIN/END 特殊格式          BEGIN :在awk执行动作之前的处理动作          让用户指定在第一条输入记录被处理之前所发生的动作,通常可在这里设置全局变量       END:在awk 执行动作完成后执行的动作          让用户在最后一条输入记录被读取之后发生的动作      例如:     Awk –F:’$NF ~/bash/ {print “username bash” ;printf “%-10s %s\n,$1,$NF”}’ /etc /passwd 

 空模式是指 :匹配所有行 由于篇幅限制字数限制不能全部介绍,如有错误,还望多多指正,多多讨论,谢谢。下篇 将继续awk的循环控制语句的使用, 总结

以上是内存溢出为你收集整理的perl语言中的AWK之基础篇全部内容,希望文章能够帮你解决perl语言中的AWK之基础篇所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1294480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存