zoukankan      html  css  js  c++  java
  • awk

    awk--行列处理
    awk缺省的行分割符是换行,缺省的列分割符是连续的空格和Tab。

    awk读取命令行上所指定的各个文件,一次读取一条记录(行)。再针对每一行,执行应用程序所指定的命令。

    awk的默认动作为打印。

    基本形式
    awk option 'script' file1 file2 ...
    awk option -f scriptfile file1 file2 ...

    script格式
    /pattern/{actions}
    condition{actions}
    注:actions内应包含“;”。
    awk的默认动作为打印print, print的参数间用,隔开,否则awk将连接相邻的所有值。


    自动变量$1,$2分别表示第一列、第二列等,类似shell脚本的位置参数,而$0标识整个当前行。
    #awk '$2<75 {printf "%s %s :, $0, "REORDER";} $2>=75 {print $0;}' testfile

    awk命令的condition部分还可以是两个特殊的condition-BEGIN和END。
    对于每个待处理文件,BEGIN后面的actions在处理整个文件之前执行一次。
    END后面的actions在处理整个文件后执行一次。

    awk命令可以像C语言一样使用变量(但不需要定义变量),比如统计一个文件中的空行数
    #awk '/^ *$/ {x=x+1;}  END {print x;}' testfile

    awk常用的内建变量
    FILENAME    当前输入文件的文件名,该变量是只读的
    NR        当前行的行号,该变量是只读的,R代表record
    NF        当前行所拥有的列数,该变量是只读的,F代表field
    OFS        输出格式的列分割符,缺省是空格
    FS        输入文件的列分割符,缺省是连续的空格和Tab。可以使用-F选项指定分隔符。
    ORS        输出格式的行分割符,缺省是换行符
    RS        输入文件的行分割符,缺省是换行符。

    打印系统中用户帐号列表
    #awk 'BEGIN {FS=":"} {print $1;}'  /etc/passwd
    #awk -F : '{print $1, $5}' /etc/passwd      

    #awk 'BEGIN { FS=":" ; OFS=“**" } {print $1, $5}' /etc/passwd

    awk获取某列的值

    SIZE=1

    SIZE=$(ls  -l  foo | awk -F ' ' '{print $5;}' )

    注:命令带换用$().

    awk统计ps虚拟内存之和(虚拟内存和物理内存)

    #ps aux | awk 'BEGIN {x=0;} NR>1 {x=x+$5;} END {print x;}'

    #ps aux | awk 'BEGIN {x=0;} NR>1 {x=x+$6;} END {print x;}'

  • 相关阅读:
    [国嵌攻略][152][I2C总线介绍]
    [国嵌攻略][151][nandflash驱动程序设计]
    [国嵌攻略][150][实际嵌入式系统环境搭建]
    [国嵌攻略][149][Yaffs2文件系统应用]
    [国嵌攻略][148][MTD系统架构]
    [国嵌攻略][147][简单块设备驱动设计]
    [国嵌攻略][146][块设备驱动实例分析]
    PhpStorm Git 配置
    PHP 创建重用数据库连接函数 mysqli与PDO
    【转载】php程序员:从1.5K到18K 一个程序员的5年成长之路
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/5068473.html
Copyright © 2011-2022 走看看