• shell之awk(一)内置变量


    $0     打印行所有信息

    $1~$n      打印行的第1到n个字段信息
    NF      处理行的字段个数
    NR      处理行的行号
    FNR      多文件处理时,每个文件单独记录行号
    FS      字段分隔符,不指定时默认以空格额或者tab键分割
    RS      行分隔符,不指定时以回车换行分割
    OFS      输出字段分隔符
    ORS      输出行分隔符
    FILENAME    处理文件的文件名
    ARGC      命令行参数个数
    AEGV      命令行参数数组

    命令演示

    % cat test.log    //先查看测试文件
    php|java golang awk nginx
    wangteng|shandong dezhou nginx
    beijing|tianjin hebei mysql
    % awk '{print $0}’ test.log  //打印所有行
    php|java golang awk nginx
    wangteng|shandong dezhou nginx
    beijing|tianjin hebei mysql
     % awk '{print $1}’ test.log  //默认以空格为分割符,打印第一列
    php|java
    wangteng|shandong
    beijing|tianjin
    % awk 'BEGIN{FS="|"}{print $1}’ test.log  //以|作为分隔符,打印第一列
    php
    wangteng
    beijing
    % awk '{print $2,$3}’ test.log  //默认以空格为分隔符,打印第2,3列
    golang awk
    dezhou nginx
    hebei mysql
    % awk '{print NF}’ test.log  //默认以空格为分隔符,打印列数
    4
    3
    3
    % awk '{print NR}’ test.log  //打印行数
    1
    2
    3
    % awk '{print FNR}' test.log access.log  //打印一个或者多个文件,分别列出每个文件的行号,计算行数
    1
    2
    3
    4
    1
    2
    3
    4
    5
    5
    6
    7
    % cat test.log   //新的测试文件
    php|java|golang|python--Go--lua|mysql--es
    % awk 'BEGIN{RS="--"}{print $0}’ test.log  //以—作为分隔符打印行内容
    php|java|golang|python
    Go
    lua|mysql
    es
    % awk 'BEGIN{RS="--";FS="|"}{print $1}’ test.log //以—作为分隔符,然后以|作为分隔符切割隔第1列
    php
    Go
    lua
    es
    % awk 'BEGIN{RS="--";FS="|";ORS="&"}{print $1}’ test.log //切割后拼接
    php&Go&lua&es
    &%
    % awk 'BEGIN{RS="--";FS="|";ORS="&"}{print $1 $2}' test.log
    phpjava&Go&luamysql&es
    &%
    % awk 'BEGIN{FS=":"}/root/{print $0}' /etc/passwd. //打印包括root的所有行
    root:*:0:0:System Administrator:/var/root:/bin/sh
    daemon:*:1:1:System Services:/var/root:/usr/bin/false
    _cvmsroot:*:212:212:CVMS Root:/var/empty:/usr/bin/false
  • 相关阅读:
    TT ERP 业务功能分析 汇总
    CSRedis 使用说明
    多线程,控制Task的20个并发数量,全部子线程执行完后,获取所有返回的值
    React 和 vue的区别以及React的环境搭建,运行
    jar 包上传后 Xshell启动
    FileZilla 上传文件
    vue多环境配置
    el-tree 节点常用操作
    钉钉微应用
    Bonobo Git Server
  • 原文地址:https://www.cnblogs.com/wt645631686/p/8476813.html
Copyright © 2020-2023  润新知