• AWK学习笔记四:awk的环境变量


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

    awk把每一个以换行符结束的行称为一个记录。

    记录分隔符:默认的输入和输出的分隔符都是回车,保存在内建变量ORS和RS中。

    $0变量:它指的是整条记录。如$ awk '{print $0}' test将输出test文件中的所有记录。

    变量NR:一个计数器,每处理完一条记录,NR的值就增加1。如$ awk '{print NR,$0}' test将输出test文件中所有记录,并在记录前显示记录号。

    记录中每个单词称做“域”,默认情况下以空格或tab分隔。awk可跟踪域的个数,并在内建变量NF中保存该值。如$ awk '{print $1,$3}' test将打印test文件中第一和第三个以空格分开的列(域)。

    内建变量FS保存输入域分隔符的值,默认是空格或tab。我们可以通过-F命令行选项修改FS的值。如$ awk -F: '{print $1,$5}' test将打印以冒号为分隔符的第一,第五列的内容。

    可以同时使用多个域分隔符,这时应该把分隔符写成放到方括号中,如$awk -F'[:\t]' '{print $1,$3}' test,表示以空格、冒号和tab作为分隔符。

    输出域的分隔符默认是一个空格,保存在OFS中。如$ awk -F: '{print $1,$5}' test,$1和$5间的逗号就是OFS的值。

     

    作者:Shane
    出处:http://bluescorpio.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    C# 如何保证对象线程内唯一:数据槽(CallContext)【转载】
    关于面试!(简历篇)
    以Windows服务方式运行ASP.NET Core程序【转载】
    .Net Core 项目在Windows服务中托管【转载】
    【转载】Ocelot网关的路由热更新
    Kafka的配置文件详细描述
    C#枚举中的位运算权限分配浅谈
    CSS 三角形
    Entity Framework 7 动态 DbContext 模型缓存 ModelCaching
    ASP.NET5 MVC6 利用Middleware 创建可访问HttpContext 的业务类工厂。(代替HttpContext.Current)
  • 原文地址:https://www.cnblogs.com/bluescorpio/p/1643574.html
Copyright © 2020-2023  润新知