• (八)awk命令


    一:printf 格式化输出

    %ns:  输出字符串。n 是数字指代输出几个字符

    %ni:  输出整数。n 是数字指代输出几个数字

    %m.nf: 输出浮点数。m 和 n 是数字,指代输出的整数位数和小数位数。如%8.2f

    代表共输出 8 位数,其中 2 位是小数,6 位是整数。

    split , substr , strlen

    输出格式:

    a: 输出警告声音

    : 输出退格键,也就是 Backspace 键

    f: 清除屏幕

    : 换行

    : 回车,也就是 Enter 键

    : 水平输出退格键,也就是 Tab 键

    v: 垂直输出退格键,也就是 Tab 键

    printf '%s' $(cat student.txt)

    printf '%s %s %s %s %s %s ' $(cat student.txt)

    3: awk 基本使用

    awk ‘条件 1{动作 1} 条件 2{动作 2}…’ 文件名

    条件(Pattern):

    一般使用关系表达式作为条件。这些关系表达式非常多,具体参考表 12-3 所示,例如:

    x > 10 判断变量 x 是否大于 10

    x == y 判断变量 x 是否等于变量 y

    A ~ B 判断字符串 A 中是否包含能匹配 B 表达式的子字符串

    A !~ B 判断字符串 A 中是否不包含能匹配 B 表达式的子字符串

     

    (1)格式化awk输出

    awk '{printf $1 " "}' student.txt

    printf '%s' $(cat student.txt)

    awk '{printf $2 " " $6 " "}' student.txt

    #输出第二列和第六列

     

    (2)条件输出打印分数》90同学的姓名

    grep -v "Name" student.txt | awk '$4>=90{ printf $2 " " }'

     

    (3)awk执行过程

    1: 如果有 BEGIN 条件,则先执行 BEGIN 定义的动作

    2: 如果没有 BEGIN 条件,则读入第一行,把第一行的数据依次赋予$0、$1、$2 等变量。其中$0代表此行的整体数据,$1 代表第一字段,$2 代表第二字段。

    3: 依据条件类型判断动作是否执行。如果条件符合,则执行动作,否则读入下一行数据。如果没有条件,则每行都执行动作。

    1    读入下一行数据,重复执行以上步骤。

     

    4: awk 内置变量

    $1 表示第一列等

    $0 代表目前 awk 所读入的整行数据。我们已知 awk 是一行一行读入数据的,$0 就代表当前读入行的整行数据。

    $n  代表目前读入行的第 n 个字段。

    NF  当前行拥有的字段(列)总数。

    NR  当前 awk 所处理的行,是总数据的第几行。

    FS  用户定义分隔符。awk 的默认分隔符是任何空格,如果想要使用其他分隔符(如“:”),就需要 FS 变量定义。

    例子:根据 FS定义分隔符查看用户

    cat /etc/passwd | grep  "/bin/bash" | awk 'BEGIN {FS=":"} {printf $1 " " }  '

  • 相关阅读:
    无线网络中,使用MDK3把指定的用户或者热点踢到掉线
    TCP/IP, UDP, ICMP, ARP协议族简介--纯图慎点
    大数据 Hibernate
    Activiti task claim concurrent
    C++ Java throw goto
    杀死Linux中的defunct进程(僵尸进程)的方法指南
    JQuery selector form input
    帆软 联合 创始人 数据可视化 中国 发展 FineReport FineBI
    Eclipse创建Maven父子项目
    Tomcat Response encode
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/11668790.html
Copyright © 2020-2023  润新知