网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

    参考回答:


    1)作用:


    • 样式扫描和处理语言.

    • 它允许创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。


    2)用法:


    awk [-F  field-separator]  'commands'  input-file(s)


    3)内置变量


    ARGC                                 命令行参数个数


    ARGV                                 命令行参数排列


    ENVIRON                           支持队列中系统环境变量的使用


    FILENAME                          AWK浏览的文件名


    FNR                                   浏览文件的记录数


    FS                                      设置输入域分隔符,等价于命令行 -F选项


    NF                                     浏览记录的域的个数


    NR                                    已读的记录数

     

    OFS                                   输出域分隔符


    ORS                                  输出记录分隔符


    RS                                    控制记录分隔符


    4)实例:


    1、找到当前文件夹下所有的文件和子文件夹,并显示文件大小


    > ls -l | awk '{print $5 "\t" $9}'


    读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域。$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键"。


    2、找到当前文件夹下所有的文件和子文件夹,并显示文件大小,并显示排序


    > ls -l | awk 'BEGIN {COUNT = -1; print "BEGIN COUNT"}

    {COUNT = COUNT + 1; print COUNT"\t"$5"\t"$9}

    END {print "END, COUNT = "COUNT}'

    先处理BEGIN, 然后进行文本分析,进行第二个{}的操作,分析完进行END操作。


    3、找到当前文件夹下所有的子文件夹,并显示排序


    > ls -l | awk 'BEGIN {print "BEGIN COUNT"} /4096/{print NR"\t"$5"\t"$9}


    END {print "END"}'


    * /4096/ 正则匹配式子


    * 使用print $NF可以打印出一行中的最后一个字段,使用$(NF-1)则是打印倒数第二个字段,其他以此类推。

    评论 0

    暂无评论
    0
    0
    0
    立即
    投稿
    发表
    评论
    返回
    顶部