• awk 基础入门


    awk  基础入门:

    一,awk,不仅仅是linux系统中的一个命令。而且是一种编程语言。可以用来处理数据和生成报告(excel表)。

    二,处理的数据可以是一个或者多个文件,可以是来自标准输入。也可以通过管道符输入,awk可以在命令行上直接编辑命令进行操作。也可以编写成awk程序来进行更为复杂的运用。

    三,#awk –version   查看awk版本。

    四,最基础用法;   01

    1,如图yunjisuan.txt文件中,awk的用法。

     

    (1):# awk '' yunjisuan.txt    单引号里是条件  后边是用户名

    (2):#awk '{print $1}' yunjisuan.txt  显示第一列

    (3):#awk '{print $2}' yunjisuan.txt  显示第二列

    2,如图

     

    (1):# awk -F ":" '{print $1}' yunjisuan.txt 以":" 为分隔符查看分隔后的第一列。

    (2):# awk -F ":" '{print $2}' yunjisuan.txt以":" 为分隔符查看分隔后的第二列。

    3,如图

     

    (1):# awk -F ":" 'NR==3' yunjisuan.txt 以":"  找出文件内容第三行

    (2):# awk -F ":" 'NR >3 && NR <8' yunjisuan.txt 以":"  找出文件大于第三行到小于第八行内容。

    4,如图

     

    (1):# awk -F ":" 'NR >3 && NR <8 {print $1}' yunjisuan.txt 以":"  找出文件大于第三行到小于第八行内容中,以分隔符“:”分隔的第一列内容。

    -F “:”以冒号为分隔符分隔

    'NR >3 && NR <8' 为模式

    {print $1} 大括号中的为动作。 

    *先模式后动作。先分行后分列。

    5,如图

     

    (1)# ifconfig eth0 | awk 'NR==2' | awk -F " " '{print $1}'  以空格为分隔符 找出第二行第一列。

    (2)# ifconfig eth0 | awk 'NR==2' | awk -F " " '{print $2}'  以空格为分隔符 找出第二行第二列。

    (3)# ifconfig eth0 | awk 'NR==2' | awk -F "[:/]+ " '{print $2}'  以正则[:/]号里任意字符为分隔符 找出第二行第二列内容。

    6,如图

     

    (1)# ifconfig eth0 | awk 'NR==1' | awk -F "[:/]+ " '{print NR,$1}' 

    以正则[:/]号里任意字符为分隔符 找出第一行第一列内容并且带行号。

    五,最基础用法;   02

         1,多个模式和动作

              如图

    (1)#awk –F: ‘NR==1 {print NR,$1} NR==2 {print NR,snf}’ yunjisuan.txt找到第一行第一列和第二行和他的最后一列并带行号 $NF最后一行。

    2, (1) awd –F 参数 'BEGIN{} 模式 {动作} END{}

                      开始模块  BEGIN   告诉awd如何读数据

                      结束模块  END   告诉awd程序要如何结束

            (2)NR这个符号其实真正的含义不是行号,而是数据被awk读取一段时间后NR就会记录一次。由于awk默认以\n作为每次读数据的结束标志,因此NR就恰好等于行号。  我们可以BEGIN模块,在awk读取数据之前设定他的读取换行符是谁。

                   默认awk读入换行符和输出换行符都是\n.

             (3) 如图

     

    (1)‘BEGIN{}’默认以\n为换行符。

    (2) ‘BEGIN{RS= “:”}’ RS修改默认的读入换行符,换成:冒号

    (4)如图

     

    ‘BEGIN{RS= “:”;ORS=”|”}’把:冒号的位置都换成“|”管道符。

       NR,是显示行号。

    3,sort , uniq

      如图

     

    (1) :sort 排序   加三个参数    sort  按26个字母顺序排序

                                              sort –n  按照数字顺序排序

                                              sort –rn 是逆转排序,让数字到这数

                                              sort –k2 是按第二列排序

    (2):uniq  -c 是指,去重复的同时还计数。

    (3):xargs  加  –n1  是指每行一个元素

                                                                                    

                                                                                      2018年10月28号 晚

  • 相关阅读:
    Algorithm Of Swift -- 4.合并两个有序数组
    Algorithm Of Swift -- 3.链表反转
    Algorithm Of Swift -- 2.字符串反转
    Algorithm Of Swift -- 1.两数之和
    1850984: Fix: crash when running am.jar without parameters
    微信公众号关联小程序,实现消息推送。
    NPOI根据Excel数据导入导出到Datatable中--帮助类
    OpenCvSharp+ZXing实现多个DataMatrix解析
    多数据源导致事务不生效
    android theme之Material的默认色和夜晚模式
  • 原文地址:https://www.cnblogs.com/changtianwei/p/9868411.html
Copyright © 2020-2023  润新知