zoukankan      html  css  js  c++  java
  • shell文本编辑器:awk用法

    awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。

    awk语法格式:

    awk 命令 '{执行语句}' 文件名
    
    awk 命令 '/正则/{执行语句}' 文件名
    

    awk常用命令:

    -F: 指定分隔符。不写就是以一个或多个空格为分隔符。
    
    -v var=value   赋值一个用户定义变量,将外部变量传递给awk
    

    读前处理和读后处理。

    BEGIN语句块: 在awk开始从输入流中读取行之前被执行,这是一个可选的语句块,比如变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句块中。 
    
    END语句块:   在awk从输入流中读取完所有的行之后即被执行,比如打印所有行的分析结果这类信息汇总都是在END语句块中完成,它也是一个可选语句块。
    

    awk内置变量:

    $n 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。
    
    $0 这个变量包含执行过程中当前行的文本内容。
    
    NF 表示字段数,在执行过程中对应于当前的字段数。
    
    NR 表示记录数,在执行过程中对应于当前的行号。
    

    awk运算和判断。

    + -	                    加,减 
    * / &	            乘,除与求余 
    + - 	            一元加,减
    ^ ***	            求幂 
    ++ --	            增加或减少,作为前缀或后缀
    = += -=                 赋值语句
    ||	                    逻辑或 
    &&	                    逻辑与
    !                       逻辑非 
    < <= > >= != ==         关系运算符
    

    awk小例子:

    1、

    test文件内容为:
    
    root:123:234:345:666
    
    #awd -F: {print $1,$3} test
    
    root 234
    
    表示:以:分割,$1表示分割后的第一部分,同理$3表示第三部分。
    

    2、

    #awk -F: 'NR==1{print $1,NR}' test
    
    root 1
    
    NR==1表示只定位第一行,后面输出语句,输出第一部分和行数。
    

    3、

    读前处理:
    #awk -F: 'BEGIN {print NR,NF}' /etc/passwd
    0 0
    
    读后处理:
    #awk -F: 'END {print NR,NF}' /etc/passwd
    46 7
  • 相关阅读:
    ASP.NET2.0服务器控件之自定义状态管理
    sql中RIGHT和LEFT(小技巧)
    微软云计算的思考
    枚举转化和判断方法的总结
    sql中的split(小技巧)
    ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI
    浅析值类型与引用类型的内存分配
    ASP.Net Web Page深入探讨
    const和static readonly 区别
    程序中一种用in的sql防注入的方法(小技巧)
  • 原文地址:https://www.cnblogs.com/G-YUE/p/6607202.html
Copyright © 2011-2022 走看看