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:

  • 相关阅读:
    Oracle EBS Form调用JavaBean前期配置
    Oracle EBS Form Builder使用Java beans创建窗体
    将 Oracle Forms 集成到 Oracle ADF Faces 中
    Oracle EBS开发习惯
    支持MOAC功能的Form开发步骤
    Form的Trigger的优先级
    所有标准API
    EBS中Java并发程序笔记(1)
    ORACLE FORM中,如何使用警告?
    .Net Core3.0 WebApi 六: Sqlsugar+异步泛型仓储
  • 原文地址:https://www.cnblogs.com/kimbo/p/7054496.html
Copyright © 2011-2022 走看看