awk命令基础和进阶

---恢复内容开始---

awk命令基础

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

1. --version来查看awk的版本

2.awk '条件‘ filename

3.awk -F指定awk按照什么标志进行文件的切割,将原文件切割成一列一列的。如果我们不指定-F参数,awk默认按照空格进行文本的切割。{}中的print代表输出,$代表取列,$0就是默认输出文件的全部内容,$NF就是默认输出文件的最后一列

4.awk的使用格式:

awk options 'pattern{action}' filename

       (参数) (模式)(动作)模式是条件,是用来筛选数据的。动作是干什么
        先模式后动作;先根据参数切割,根据单引号里面的模式进行内容过滤,符合模式条件的再动作输出。

 5.贪婪模式  -F “空格” 默认贪婪

 6.-F指定分隔符为冒号

 7.awk -F 参数 ‘BEGIN{}模式{动作}END{}’ 文件名

    BEGIN:告诉awk,数据要如何读;END:告诉awk程序要如何结束。换行符是 ,NR是行号,RS是读入换行符;ORS是     输出换行符。

 8.sort命令:sort不加参数默认按26个英文字母;加-n按数字排序;加r是逆转排序;加k是从第几行排序。

 awk命令进阶

 1. awk的模式有四种:正则表达式,比较表达式,范围模式,特殊模式BEGIN和END。

    正则表达式作为模式

    第九列是200的ip地址

    直接在模式里面启用'$9~/^200$/{print $1}' ~代表启用正则 !~代表取反

    ’BEGIN{} 模式(动作) END{}'

    BEGIN:在开头执行一次;模式(动作):读取文件全过程都执行;END:在结尾执行一次

  2.在awk中,默认初始值从0开始

     +加-减*乘/除**乘方

     awk '{x=x+1;print x}' test (文件里有几行就输出几行)

     awk '{x=x+1}END{print x} ' test 文件一共多少行输出最终行号 (i++)= (i=i+1)

     awk '/^$/{i++}END{print i}' 统计有多少空行

     tr是替换命令 在编程里for是循环

     awk '{h[$1]=h[$1]+$2}END{for(i in h)print i,h[i]}' test

     

    

 

---恢复内容结束---

awk命令基础

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

1. --version来查看awk的版本

2.awk '条件‘ filename

3.awk -F指定awk按照什么标志进行文件的切割,将原文件切割成一列一列的。如果我们不指定-F参数,awk默认按照空格进行文本的切割。{}中的print代表输出,$代表取列,$0就是默认输出文件的全部内容,$NF就是默认输出文件的最后一列

4.awk的使用格式:

awk options 'pattern{action}' filename

       (参数) (模式)(动作)模式是条件,是用来筛选数据的。动作是干什么
        先模式后动作;先根据参数切割,根据单引号里面的模式进行内容过滤,符合模式条件的再动作输出。

 5.贪婪模式  -F “空格” 默认贪婪

 6.-F指定分隔符为冒号

 7.awk -F 参数 ‘BEGIN{}模式{动作}END{}’ 文件名

    BEGIN:告诉awk,数据要如何读;END:告诉awk程序要如何结束。换行符是 ,NR是行号,RS是读入换行符;ORS是     输出换行符。

 8.sort命令:sort不加参数默认按26个英文字母;加-n按数字排序;加r是逆转排序;加k是从第几行排序。

 awk命令进阶

 1. awk的模式有四种:正则表达式,比较表达式,范围模式,特殊模式BEGIN和END。

    正则表达式作为模式

    第九列是200的ip地址

    直接在模式里面启用'$9~/^200$/{print $1}' ~代表启用正则 !~代表取反

    

 

原文地址:https://www.cnblogs.com/liaang/p/9873937.html