zoukankan      html  css  js  c++  java
  • Shell工具

    一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。与cut类似,但功能更加强大。

    1.基本用法

    awk [选项参数] ‘pattern1{action1}  pattern2{action2}...’ filename

      pattern:表示AWK在数据中查找的内容,就是匹配模式
      action:在找到匹配内容时所执行的一系列命令

    2.选项参数说明

    选项参数 功能
    -F 指定输入文件分隔符
    -v 赋值一个用户定义变量

    3.案例实操

    数据准备
    [root@VM_0_8_centos data]# cp /etc/passwd ./

    案例1:搜索passwd文件以root关键字开头的所有行,并输出该行的第7列。(列之间以:分隔)

    [root@VM_0_8_centos data]# awk -F : '/^root/ {print $7}' passwd 
    /bin/bash

    案例2:搜索passwd文件以root关键字开头的所有行,并输出该行的第1列和第7列,中间以“,”号分割。

    [root@VM_0_8_centos data]# awk -F : '/^root/ {print $1","$7}' passwd 
    root,/bin/bash

    案例3:只显示/etc/passwd的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell在最后一行添加"dahaige,/bin/buyaolian"

      BEGIN和END相当于正则。

      对于{print $1","$7}来说,没有pattern,那就是对所有行执行action。

    [root@VM_0_8_centos data]# awk -F : 'BEGIN{print "user,shell"} {print $1","$7} END{print "dahaige,/bin/buyaolian"}' passwd 
    user,shell
    root,/bin/bash
    bin,/sbin/nologin
    daemon,/sbin/nologin
    adm,/sbin/nologin
    ...省略...
    chrony,/sbin/nologin
    tcpdump,/sbin/nologin
    syslog,/bin/false
    dahaige,/bin/buyaolian

    案例4:将passwd文件中的用户id增加数值1并输出

    [root@VM_0_8_centos data]# awk -F : -v i=1 '{print $3+i}' passwd 
    1
    2
    3
    4
    ...省略...
    73
    997
    1001

    案例4:查看3个内置变量

    FILENAME:文件名

    NR:行号

    NF:切割后列的个数

    [root@VM_0_8_centos data]# awk -F : '{print FILENAME "," NR "," NF}' passwd 
    passwd,1,7
    passwd,2,7
    passwd,3,7
    passwd,4,7
    ...省略...
    passwd,23,7
    passwd,24,7
    passwd,25,7
    passwd,26,7

    案例5:查看空行所在的行号

    awk '/^$/ {print NR}' sed.txt
  • 相关阅读:
    相似矩阵
    特征值和特征向量
    非齐次方程组的通解
    线性方程组解的性质和结构、基础解系
    高斯消元法求齐次线性方程的通解
    从零开始学 Web 之 HTML(三)表单
    从零开始学Web之HTML(二)标签、超链接、特殊符号、列表、音乐、滚动、head等
    从零开始学 Web 之 HTML(一)认识前端
    JavaScript基础(一)概述
    如何恢复windows的exe文件的默认打开方式
  • 原文地址:https://www.cnblogs.com/noyouth/p/12767848.html
Copyright © 2011-2022 走看看