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号 晚

原文地址:https://www.cnblogs.com/changtianwei/p/9868411.html