zoukankan      html  css  js  c++  java
  • awk全集

    NF(number of field)表示一行中的区域(列)数量,$NF取最后一个区域。表示最后一列
    $符号表示取某个列(区域),$1,$2,$NF
    NR (number of record) 行号,awk对每一行的记录号都有一个内置变量NR来保存,每处理完一条记录NR的值就会自动+1
    FS(-F)field separator 列分隔符,以什么把行分隔成多列



    以空格为分割符 打印第一行 最后一列
    ll |awk 'NR==1 {print $NF}'

    一个awk的用法,ps -ef 获取第一列是mysql(user) 的进程pid号
    ps -ef |grep -v grep |awk '{if($1=="mysql"){print $2}}'

    可以有多个模式和动作

    awk -F "#" 'NR==1{print $1}NR==4{print $1}'  1.txt

    awk中 $0 表示整行

    awk '{print $0}' 1.txt

    获取倒数第二列

    awk -F "#" '{print $(NF-1)}' 1.txt

    正则

    包含 666 的行 中的第一列。

    awk -F "#" '/666/{print $1}' 1.txt

    以#为分隔符,显示第一列以l开头或最后一列以9结尾的行

    [root@jinkangldap ~]# cat 1.txt 
    heloasd#asdf#asdf
    asdf#asdfasdf#888
    oooo#666#999
    lll#kkk#jjj
    [root@jinkangldap ~]# awk -F "#" '$1~/^l/{print $0}$NF~/9$/{print $0}'  1.txt 
    oooo#666#999
    lll#kkk#jjj

     打印 首行非l开头的行

    awk -F "#" '$1!~/^l/{print $0}'  1.txt

    awk是一行一行地处理文本文件,运行流程是:

    先运行BEGIN后的{Action},相当于表头
    再运行{Action}中的文件处理主体命令
    最后运行END后的{Action}中的命令
    有几个经常用到的awk常量:NF是当前行的field字段数;NR是正在处理的当前行数。

    注意到是转置,假如原始文本有m行n列(字段),那么转置后的文本应该有n行m列,即原始文本的每个字段都对应新文本的一行。我们可以用数组res来储存新文本,将新文本的每一行存为数组res的一个元素。

    在END之前我们遍历file.txt的每一行,并做一个判断:在第一行时,每碰到一个字段就将其按顺序放在res数组中;从第二行开始起,每碰到一个字段就将其追加到对应元素的末尾(中间添加一个空格)。

    文本处理完了,最后需要输出。在END后遍历数组,输出每一行。注意printf不会自动换行,而print会自动换行。


    awk '{
    for (i=1;i<=NF;i++){
    if (NR==1){
    res[i]=$i
    }
    else{
    res[i]=res[i]" "$i
    }
    }
    }END{
    for(j=1;j<=NF;j++){
    print res[j]
    }
    }' file.txt

    [root@jinkang-e2elog ~]# cat 2.txt
    name age
    alice 21
    ryan 30

    =>

    name alice ryan
    age 21 30

  • 相关阅读:
    条形码:Code93
    MSSQL 又一个行列转换
    PowerShell查看Sharepoint日志
    SharePoint Meeting Workspace
    Developer Dashboard in SharePoint 2010
    SPUtility.SendEmail
    处理sharepoint 列表中的 person or group类型字段
    SharePoint Issue: Unable to oben the Site (Object null reference Error) Solution
    import a Microsoft SharePoint 2010 site definition
    SPListTemplateType 枚举 (Microsoft.SharePoint) 创建列表时的ListTemplate Type属性
  • 原文地址:https://www.cnblogs.com/jkklearn/p/11863129.html
Copyright © 2011-2022 走看看