zoukankan      html  css  js  c++  java
  • shell awk命令

    语法:

    awk '{command}' filename  多个命令以分号分隔

    awk 'BEGIN {command1} {command2} END{command3}'  注意:BEGIN ,END 需要大写

    常用变量说明:

    FS : 指定分隔符,默认是空格和tab 。 也可以简写 -F ";"

    NR: 目前处理的是【第几行】数据 ,文件中的行标

    NF: 每一行的列数(段、栏位)

    例子1:

    # 以tab作为分隔符
    # print $0 表示打印所有列, $1 表示打印第一列 ,不写默认打印所有列
    
    # 打印所有列,用 -F 指定分隔符 ,$0
    awk -F "	" '{print $0}' zss_test.txt
    # 打印所有列,用 -F 指定分隔符
    awk -F "	" '{print }' zss_test.txt
    # 打印所有列,用 FS 指定分隔符
    awk 'FS=="	"; {print $0}' zss_test.txt

    打印结果1:

    例子2:

    ##查看文件内容
    cat -n zss_test.txt
    
    ##NR,NF使用
    awk 'FS=="	"; {print $1 "	 rows:"NR "	 columns:"NF}' zss_test.txt
    
    ##利用NF,打印最后一列
    awk -F "	" '{print $NF}' zss_test.txt

    打印结果2:

    例子3:

    ##删除指定目录下的所有文件 慎用
    
    ls -l|awk '{print "rm -fr " $9}'|sh

    例子4:

    # 利用printf 格式化输出 %s 字符,%d 整数,%f 浮点 ; 
    # %10s 右对齐,长度10,实际长度大于设置长度,按实际长度
    # %-10s 左对齐,其他同上
    
    #打印文件内容
    cat -n kimbo_test.txt
    
    #打印第二行之后的,列1,列4
    awk -F"|" 'NR>=2{print $1,$4}' kimbo_test.txt
    #打印第二行之后的,列1,列4 ,利用printf格式话输出 ,列1左对齐
    awk -F"|" 'NR>=2{printf "%-30s	%5.2f
    ",$1,$4;}' kimbo_test.txt
    #打印第二行之后的,列1,列4 ,利用printf格式话输出 ,列1右对齐
    awk -F"|" 'NR>=2{printf "%30s	%5.2f
    ",$1,$4;}' kimbo_test.txt
    
    ##多个命令,可以分号分隔
    ## 打印第二行之后的,列1,列4 ,利用printf格式话输出 ,列1左对齐
    awk -F"|" 'NR>=2{printf "%-30s	",$1}; NR>=2{printf "%5d
    ", $4}' kimbo_test.txt 

    打印结果4:

    例子5:

    ##begin end 用法
    
    #打印第二行之后的,列1,列4
    awk -F"|" 'BEGIN {print "start-->"} NR>=2{print $1,$4} END{print "end"}' kimbo_test.txt

    打印结果5:

  • 相关阅读:
    BCP导出导入
    JBehave
    JavaWeb框架的基石
    SWI-Prolog
    面向对象设计三大特性
    android app启动过程(转)
    人,技术与流程(转)
    打破定式,突破屏障,走出自己的创意舒适区(转)
    野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人(转)
    Spring MVC异常处理详解 ExceptionHandler good
  • 原文地址:https://www.cnblogs.com/kimbo/p/7054496.html
Copyright © 2011-2022 走看看