• awk命令


    一 awk简介:
    awk是一种用于处理数据和生成报告的编程语言
    awk可以在命令行中进行一些简单的操作,也可以被写成脚本来处理较大的应用问题。awk与grepsed命令结合,使shell编程更容易
    linux下使用的awk是gawk

    二 awk如何工作:
    awk逐行扫描输入(可以是文件或者管道),按照给定的模式查找匹配的行,然后对这些行执行awk指定的操作
    与sed一样.awk不会改变文件的内容。可以使用过重定向将awk输出的内容保存到文件。

    三 awk简单用法
    -F  指定输入字段的分隔符,默认情况下使用环境变量IFS的值
    -f 从指定文件读取awk_script(类似于sed)
    -v 为awk设定变量

    awk -F: '{print $1}' /etc/passwd  :对输入文件以:为分隔符,打印第一列内容(用户名)。  $0整行
    awk -F: '{print $1,$3}' /etc/passwd:第一列和第三列
    awk -F: '{print $1 “ |” $3}' /etc/passwd:竖线分割
    awk -F: '/^root/{print $1,$3}' /etc/passwd:root开头行

    -f:将上面引号中的命令放入脚本中
    awk -F: -f test.awk /etc/passwd

    四 awk_script语法:
    awk命令的一般形式:
    awk 'BEGIN {actions}
        /pattern1/{actions}
        ...
        /patternN/{actions}
        END {actions}' input_file
    其中BEGIN 和END可选

    awk_script可以有一条或者多条awk_cmd组成。每条awk_cmd占一行
    每个awk_cmd由两部分组成:/pattren/{actions}
    awk_cmd中的/pattern/和{actions}可以省略,但是不能同时省略。/pattern/表示匹配指定模式的行。{actions}省略表示打印整行
    {actions}表示对一行中某些列的操作。

    awk的执行过程
    1、如果存在BEGIN,awk先执行它指定的{actions}
    2、awk从输入中读取一行。称为一条输入记录
    3、awk将输入的记录分割成数个字段,并将第一个字段放入变量$1中,第二个放入$2中;$0表示整条纪录
    4、把当前的输入记录依次与每一个/pattren/比较;如果匹配,就执行相应的actions;如果不匹配,就跳过对应的{actions}直到所有的awk_cmd执行完
    5、当一条输入记录处理完毕,处理下一条,直到所有输入处理完毕。
    6、awk处理完所有行,如存在END,就执行相应{actions}
    默认是空格分隔符。匹配/inet addr/的行
    例子:ifconfig |  awk  '/inet addr/{print $2}'  | awk -F: '{print $2}'  
    223.3.49.34
    127.0.0.1

    ifconfig |  awk  '/inet addr/{print $2}'  | awk -F: 'BEGIN {print "begin..."} {print $2} END {print "end..."}'
    begin...
    223.3.49.34
    127.0.0.1
    end...


  • 相关阅读:
    一个FLAG #03# 蛇形填数
    一个FLAG #02# 逆序输出
    一个FLAG #01# 重学C/C++以及算法
    MAVLink笔记 #01# 维基百科翻(译)
    编译原理 #04# 中缀表达式转化为四元式(JavaScript实现)
    Java开发:手机电话号码校验
    解决java poi循环遍历行getLastRowNum出现不准确的问题
    Redis的安装和简单测试
    JS解析xml字符串,并把xml展示在HTML页面上
    解决cxf+springmvc发布的webservice,缺少types,portType和message标签的问题
  • 原文地址:https://www.cnblogs.com/wsw-seu/p/8228086.html
Copyright © 2020-2023  润新知