• awk


    awk

    • AWK是一种处理文本文件的语言。它将文件作为记录序列处理。在一般情况下,文件内容的每行都是一个记录。每行内容都会被分割成一系列的域,因此,我们可以认为一行的第一个词为第一个域,第二个词为第二个,以此类推。
    • AWK程序是由一些处理特定模式的语句块构成的。AWK一次可以读取一个输入行。对每个输入行,AWK解释器会判断它是否符合程序中出现的各个模式,并执行符合的模式所对应的动作。
    • AWK程序是由一系列模式--动作对组成的,写做

    pattern { action }

      其中pattern表示AWK在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。输入行被分成了一些记录:记录默认由换行符分割,因此输入会按照行进行分割。

    • 程序使用给定的条件一个个的测试每条记录,并执行测试通过的条件所对应的action。pattern和action都可以省略不写。无pattern默认匹配全部的记录;而无action则是打印原始记录。

    awk print

    • Example : echo "tong yi shu" | awk '{print $2}'   # 控制台的输出为 yi
    • Example : awk -F ":" '{print $2}' hello.c   # -F 后跟域分隔符并且要指定文件
    • Example :awk -v col=1 '{print $col}' file.txt   # awk命令中使用变量
    • print 命令用于输出文本。其输出的文本总是以"输出记录分隔符"(Output record separator, ORS)分割的,其默认值为换行符。该命令的最简形式为:

    print 会输出当前记录的内容。

    • AWK的内建变量包括域变量,例如$1, $2, $3..$n,以及$0。$0是指整个记录。

    这些变量给出了记录中域的内容。 内建变量也包括一些其他变量:

    NR:已输入记录的条数。

    NF:当前记录中域的个数。记录中最后一个域可以以$NF的方式引用。

    FILENAME:当前输入文件的文件名。

    FS:“域分隔符”,用于将输入记录分割成域。其默认值为“空白字符”,即空格和制表符。FS可以替换为其它字符,从而改变域分隔符。

    RS:当前的“记录分隔符”。默认状态下,输入的每行都被作为一个记录,因此默认记录分隔符是换行符。

    OFS:“输出域分隔符”,即分隔print命令的参数的符号。其默认值为空格。

    ORS:“输出记录分隔符”,即每个print命令之间的符号。其默认值为换行符。

    OFMT:“输出数字格式”(Format for numeric output),其默认值为"%.6g"。

  • 相关阅读:
    请求的详细资料级别没有事实表
    BIEE汇总数据如何放在后面
    Biee仪表盘中提示空值如何去掉
    UFT测试本地应用程序登陆小实例(描述性编程)
    Mysql找回丢失密码
    linux下Mysql多实例实现
    如何从零安装Mysql
    Linux系统下yum源配置(Centos 6)
    Linux系统管理常用命令用法总结(2)
    Linux系统管理常用命令用法总结(1)
  • 原文地址:https://www.cnblogs.com/tongyishu/p/11856017.html
Copyright © 2020-2023  润新知