您的位置:首页 > 教育 > 锐评 > 国外企业邮箱推荐_深圳设计网站排行_免费网站建设哪家好_wordpress

国外企业邮箱推荐_深圳设计网站排行_免费网站建设哪家好_wordpress

2025/4/4 14:39:10 来源:https://blog.csdn.net/xhy020917/article/details/144747851  浏览:    关键词:国外企业邮箱推荐_深圳设计网站排行_免费网站建设哪家好_wordpress
国外企业邮箱推荐_深圳设计网站排行_免费网站建设哪家好_wordpress

awk是一种强大的编程语言,用于在Linux/Unix系统下对文本和数据进行处理。以下是对awk的详细教程:

一、awk简介

awk由Alfred Aho、Brian Kernighan和Peter Weinberger三人开发,其名称分别代表这三位作者姓氏的第一个字母。awk支持用户自定义函数和动态正则表达式等先进功能,是Linux/Unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。

二、awk命令格式和选项

awk命令的基本格式如下:

awk [options] 'script' var=value file(s)

或者

awk [options] -f scriptfile var=value file(s)

其中,常用的命令选项包括:

  • -F fs:指定输入分隔符,fs可以是字符串或正则表达式,如-F:,默认的分隔符是连续的空格或制表符。
  • -v var=value:赋值一个用户定义变量,将外部变量传递给awk。
  • -m[fr] val:对val值设置内在限制。-mf选项限制分配给val的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。

三、awk脚本结构

awk脚本由模式和操作组成。模式可以是正则表达式、关系表达式等,操作则是由一个或多个命令、函数、表达式组成,之间由换行符或分号隔开,并位于大括号内。

awk脚本的基本结构如下:

awk 'BEGIN{ print"start"} pattern{ commands } END{ print"end"}' file

一个awk脚本通常由BEGIN语句块、能够使用模式匹配的通用语句块、END语句块3部分组成,这三个部分是可选的。

  • BEGIN语句块:在awk开始从输入流中读取行之前被执行,这是一个可选的语句块,比如变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句块中。
  • END语句块:在awk从输入流中读取完所有的行之后即被执行,比如打印所有行的分析结果这类信息汇总都是在END语句块中完成,它也是一个可选语句块。
  • pattern语句块:中的通用命令是最重要的部分,它也是可选的。如果没有提供pattern语句块,则默认执行{ print },即打印每一个读取到的行。

四、awk内置变量

awk提供了许多内置变量,这些变量可以在awk脚本中直接使用。以下是一些常用的内置变量:

  • $n:当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。
  • $0:这个变量包含执行过程中当前行的文本内容。
  • ARGC:命令行参数的数目。
  • ARGIND:命令行中当前文件的位置(从0开始算)。
  • ARGV:包含命令行参数的数组。
  • CONVFMT:数字转换格式(默认值为%.6g)。
  • ENVIRON:环境变量关联数组。
  • ERRNO:最后一个系统错误的描述。
  • FIELDWIDTHS:字段宽度列表(用空格键分隔)。
  • FILENAME:当前输入文件的名。
  • FNR:同NR,但相对于当前文件。
  • FS:字段分隔符(默认是任何空格)。
  • IGNORECASE:如果为真,则进行忽略大小写的匹配。
  • NF:表示字段数,在执行过程中对应于当前的字段数。
  • NR:表示记录数,在执行过程中对应于当前的行号。
  • OFMT:数字的输出格式(默认值是%.6g)。
  • OFS:输出字段分隔符(默认值是一个空格)。
  • ORS:输出记录分隔符(默认值是一个换行符)。
  • RS:记录分隔符(默认是一个换行符)。
  • RSTART:由match函数所匹配的字符串的第一个位置。
  • RLENGTH:由match函数所匹配的字符串的长度。
  • SUBSEP:数组下标分隔符(默认值是34)。

五、awk操作

awk的操作部分可以包含变量或数组赋值、输出命令、内置函数和控制流语句等。

  • 变量或数组赋值:可以在awk脚本中对变量或数组进行赋值操作。
  • 输出命令:使用print或printf函数可以将处理结果输出到标准输出或文件中。
  • 内置函数:awk提供了许多内置函数,如数学函数、字符串函数等,可以在脚本中直接使用。
  • 控制流语句:awk支持if-else、while、for等控制流语句,用于实现复杂的逻辑控制。

六、awk示例

以下是一些awk的使用示例:

下面例子中filename表示目标文件

  • 打印文件的全部内容:

    awk '{print}' filename
    
  • 使用冒号作为字段分隔符,打印第一列:

    awk -F: '{print $1}' filename
    
  • 搜索包含特定字符串的行,并打印整行内容:

    awk -F: '/search_string/{print $0}' filename
    
  • 打印文件的总行数:

    awk 'END{print NR}' filename
    
  • 使用BEGIN和END语句块进行初始化和汇总操作:

    awk 'BEGIN{sum=0} {sum+=$1} END{print sum}' filename
    

七、注意事项

  • awk脚本中的字符串和正则表达式需要使用双引号或单引号括起来。
  • 在awk脚本中,变量和字段的引用不需要使用$符号进行转义。
  • awk默认以空格或制表符作为字段分隔符,但可以通过-F选项指定其他分隔符。

通过以上内容的学习,您可以掌握awk的基本用法和常见操作,并能够使用awk对文本和数据进行高效的处理和分析。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com