zoukankan      html  css  js  c++  java
  • [Linux]AWK入门

    运行AWK程序

    • awk '脚本内容' - 也可以把这些写到sh脚本文件中
    • awk -f 脚本文件名
    • 在脚本文件中第一行写入"#!/bin/awk -f",然后在shell中执行脚本文件

    PATTERN

    AWK程序的组织形式如下。

    pattern { action }

    AWK程序顺次读取输入的每一行,然后判定改行是否符合pattern,如果pattern为true,则对应的action执行。

    有如下pattern:

    [空] - 这个对应的action永远执行

    BEGIN - 所有输入之前执行

    END - 所有输入之后执行

    print

    action中最常用的是print,用法:

    print list_of_打印项(seq=,)

    支持转义字符。

    支持变量,例如$3代表打印输入文本的第3列。

    和sh不同,变量不能写在引号内。

    变量

    输入文本列

    $i代表第i列,其中i可以是立即数,也可以是变量

    使用sh中的变量

    直接在sh中赋值,然后在awk中使用这个变量——是不行的,下边做个对比说明

    对比1 - 这个可以打印第二列

    执行 awk 'BEGIN{x=2}{print $x}',相当于执行awk文件:

    BEGIN { x=2}{print $x}

    对比2 - 这个不可以打印第二列

    执行 x=2 后,再执行 awk '{print $x}'

    x变量并不被awk识别

    对比2改进

    执行 x=2 后,再执行 awk '{print $'$x'}',可以这么理解:

    bash首先执行红色部分 awk '{print $'$x'}',结果为 awk '{print $2}'

  • 相关阅读:
    translations.dart阅读
    # objc-weak 阅读
    Objective-C Runtime2.0(-)
    iOS图文混排
    BestCoder Round #85 抽屉原理/贪心/质因数
    hdu 5763 Another Meaning KMP+DP(多校)
    hdu 5775 Bubble Sort 树状数组(多校)
    BestCoder Round #84
    hdu 5724 SG函数+状压(多校)
    hdu 5723 最小生成树+dfs (多校)
  • 原文地址:https://www.cnblogs.com/SelaSelah/p/2715795.html
Copyright © 2011-2022 走看看