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:

  • 相关阅读:
    下载程序的疑问
    Beaglebone环境建立:电源适配器供电+网线ssh
    Android百分比布局支持库介绍——com.android.support:percent
    android应用中去掉标题栏的方法
    自己写的进度条
    返回图片指定点的RGB值
    修改指定图片的分辨率
    跨域访问的问题和解决过程
    C#取硬盘、CPU、主板、网卡的序号 ManagementObjectSearcher
    Sql Server字符串函数
  • 原文地址:https://www.cnblogs.com/kimbo/p/7054496.html
Copyright © 2011-2022 走看看