zoukankan      html  css  js  c++  java
  • Linux常用命令awk

    awk能够处理类似csv这种按行格式的数据,对每一行record按照-F指定的分隔符切割,然后处理。默认支持空格和 分隔符

    1、统计文件里某一列数据等于某个值的个数

    cat djt10.log | awk -F ',' 'BEGIN{count=0;f=0} {if($1 == 1){count = count+1} else{f = f+1}} END{print count,f, count/f}' > 1-0_djt10.txt

    2、拼接$1参数指定文件夹下的文件到一个大文件

    for((i=13; i<189;i++)) do
        cd 10.52.116.$i
        pwd
        cat ./$1/find_prog.log >> ../djt$1.log
        cd ..
        #pwd
    done

    3、awk打印行号和整行信息

    awk '{print NR, $0}'

    4、awk匹配字符串

    #如果第一列等于字符串4.0K,则打印这一行,~前后不要有空格,跟shell变量赋值一样
    awk 'if($1~/4.0K/){print $0}' 
    
    #判断字符串是否等于"null"
    cat url.txt | awk '{if($1 != "null"){print $1}}' > urls.txt

    #判断字符串是否等于"-1"
    cat 2017-10-19-validated.txt |awk -F ',' '{if($14~/"-1"/){print $0}}'

    5、循环——对输出结果排序,中间间隔了的则打印空行

    cat 234420train.log|awk '{if($1==1){print $6}}'|sort -n|uniq| awk 'BEGIN{i=1}{if(i==$1){print i;i=i+1}else{while(i<$1){print ""; i=i+1} print $1;i=i+1}}'

    6、awk把制表符换成逗号

    cat tmp.txt | awk '{printf"[%s,%s]
    ", $1, $2}'

    [hadoop@master scala]$ tail tmp.txt
    101    118.5
    102    126
    103    127.5
    104    120
    105    119.5
    106    134.5
    107    130.5
    108    139.5
    109    133.5
    110    138
    [hadoop@master scala]$ cat tmp.txt | awk '{printf"[%s,%s] ", $1, $2}'|tail
    [101,118.5]
    [102,126]
    [103,127.5]
    [104,120]
    [105,119.5]
    [106,134.5]
    [107,130.5]
    [108,139.5]
    [109,133.5]
    [110,138]

    7、awk里用system()执行命令

    cat musics.txt | awk -F '*' '{cmd="wget "$2" -O "$1".mp3";system(cmd)}'

    8、awk打印时以 分割

    cat 10daysGap4.txt |awk '{print $6,$7}' OFS="	" > sampling-recall.xls

    9、删除文件的第一列,后面全部按 打印

    cat top571-5min-sorteddomain.ts |awk '{for(i=2; i < NF+1; i++){printf("%s	", $i)}printf("
    ")}'

    10、

  • 相关阅读:
    QQ邮箱开启SMTP服务的步骤
    delete
    (三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
    (四)SAX方式解析XML数据
    If-Modified-Since页面是否更新
    基于分块统计和机器学习的主题类网页内容识别算法实现和应用范例
    文本去重第一步:基于内容的文本相似性计算
    java中int,float,long,double取值范围,内存泄露
    Linux多线程服务端编程:使用muduo C++网络库
    HttpClient使用详解
  • 原文地址:https://www.cnblogs.com/vincent-vg/p/6537692.html
Copyright © 2011-2022 走看看