zoukankan      html  css  js  c++  java
  • awk

    简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处

    1.命令行方式
    awk [-F  field-separator]  'commands'  input-file(s)
    其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。
    在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

    例如:cat /etc/passwd | awk -F ':' '{print $1}'

     或者awk '{print $1}' scores.sh

    cat scores.sh | awk '{print $1}'  

    2.shell脚本方式
    将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。
    相当于shell脚本首行的:#!/bin/sh
    可以换成:#!/bin/awk

    其中 awk1.sh里面的内容

     #!/bin/awk -f 
    { print }

    然后./awk1.sh  scores.sh

    注意: #!/bin/awk -f 一定要有-f

    否则会出现这种错误

    awk: ./awk1.sh
    awk: ^ syntax error

    3.将所有的awk命令插入一个单独文件,然后调用:
    awk -f awk-script-file input-file(s)
    其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。

    例如:awk -f awk1.sh scores.sh

    其中awk1.sh里面是

    #!/bin/awk    【注意,方式二和方式三 就是这里差一个-f的区别。方式三有f没有f都可以。但方式二文件内容没有-f的话会出错】
    { print }

    其中scores.sh里面是

    kis 68 58 60 86
    as  85 90 90 97
    asd 56 68 65 75
    dgx 90 98 96 99
    tom 88 89 90 78

    参考文献:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html

  • 相关阅读:
    【BZOJ1901】Dynamic Rankings(树套树,树状数组,主席树)
    【Vijos1222】等值拉面(DP)
    【Vijos1534】高性能计算机(DP)
    【POJ3321】Apple Tree(DFS序,树状数组)
    主外键约束
    java访问权限
    java2实用教程102小程序(分数计算和流水线计算
    java对象初级知识
    java第一天的疑问
    时间
  • 原文地址:https://www.cnblogs.com/bluewelkin/p/3986234.html
Copyright © 2011-2022 走看看