• awk 命令使用


    awk命令就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。例如:

    awk -F '/' '{print $NF}' tmp/file.txt

    该命令用于读取file.txt文件中的内容,读取到的每行内容按'/'分隔符分割后并打印最后一个词,如读取到lib/xxx.txt内容将会打印出xxx.txt

    awk命令语法:
    awk [-F|-f|-v] 'BEGIN{} //{command1; command2} END{}' file
     [-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value
    '  '          引用代码块
    BEGIN   初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
    //           匹配代码块,可以是字符串或正则表达式
    {}           命令代码块,包含一条或多条命令
    ;          多条命令使用分号分隔
    END      结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息

    1、print命令是awk打印指定内容的主要命令:

    示例:读取tmp目录下的file.txt

    awk '{print}' tmp/file.txt 

    2、F指定分隔符读取

    awk -F '/' '{print $1}' tmp/file.txt

    按分隔符分割后打印第一个词

    awk -F '/' '{print $NF}' tmp/file.txt

    按分隔符分割后打印最后一个词

    awk -F '/' '{print $(NF-1)}' tmp/file.txt

    按分隔符分割后打印倒数第二个词

    附注:

    • $0           表示整个当前行
    • $1           每行第一个字段
    • NF          字段数量变量
    • NR          每行的记录号,多文件记录递增
    • FNR        与NR类似,不过多文件记录不递增,每个文件都从1开始
    •            制表符
    •           换行符
    • FS          BEGIN时定义分隔符
    • RS       输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)
    • ~            匹配,与==相比不是精确比较
    • !~           不匹配,不精确比较
    • ==         等于,必须全部相等,精确比较
    • !=           不等于,精确比较
    • &&      逻辑与
    • ||             逻辑或
    • +            匹配时表示1个或1个以上
    • /[0-9][0-9]+/   两个或两个以上数字
    • /[0-9][0-9]*/    一个或一个以上数字
    • FILENAME 文件名
    • OFS      输出字段分隔符, 默认也是空格,可以改为制表符等
    • ORS        输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
    • -F'[:#/]'   定义三个分隔符
  • 相关阅读:
    RHEL因为selinux设置失误,无法重启问题。(centos适用)
    Linux系统忘记管理员密码(CentOS、RHEL、Ubuntu)
    cobbler PXE 安装系统时出现的问题
    虚拟机ping 不通主机,主机可ping 虚拟机解决方法
    CentOS7系统更改网卡名为eth0
    PXE-cobbler 无人值守装机------续
    PXE-cobbler 无人值守装机
    DELL PowerEdge R410系统日志满报错
    matlab添加toolbox失败的解决办法
    vs2017+opencv3.4.0的配置方法
  • 原文地址:https://www.cnblogs.com/kingsonfu/p/11475618.html
Copyright © 2020-2023  润新知