入门总结

Awk简介

awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据生成报告。处理的数据可以是一个多个文件,可以是来自标准输入,也可以通过管道获取标准输入,awk可以在命令行上直接编辑命令进行操作,也可以编写成awk程序来进行更为复杂的运用。

查看awk的版本

awk --version

单引号‘{  }{ }外面是模式(条件) 你想要干什么,相当于筛选 ,或者过滤

类似于sed命令

单引号{  }里面是动作先执行模式,后执行动作

 

Awk格式

先进行冒号的切割成一列一列的,然后在进行条件,相当于是筛选;筛选到第四行的时候匹配到了条件,然后在从第三行到第八行里面进行动作动作为$1时候,显示4,5,6,7行的第1列内容

参数-F

Awk 有参数-F 可以指定awk按照什么符号切割文件内容,资源文件内容切割成一列一列的

Awk 不指定-F参数,awk默认按照空格进行文本的切割。{  }中的print代表输出的意思

$代表取列  $1就是取第一列,以此类推

以:号作为列 ,然后输出第七列的内容

输出第一列内容

 

 

 

默认以空格当列,因为文件里面没有空格符号,所以没有第二列内容

$0:默认输出全部内容

NF:默认取每行的最后一组的元素,

“[   ]”中括号里面是正则 可以多用符号

+号:贪婪模式能匹配多就不匹配少

Awk –F 参数 ‘BEGIN(开始模块){}模式 {动作}END(结束模块){}’

BEGIN开始模块:告诉awk数据要如何读

通过-F我们可以指定分隔符

我们都知道换行符是 \n

NR这个符号其实真正的含义不是行号。而是数据被读取一段以后,NR就会记录一次。由于awk默认以\n作为每次读数据的结束标志;因此NR就恰好等于行号了。

 

假如我们修改awk默认的读数据的时候的默认换行符=== > 读入换行符

 

我们可以通过BEGIN模块,在awk读取数据之前设定他的读入换行符是谁

 

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

修改读入换行符

应为我们设定了读入换行符RS=“:”

因此,在awk的内存里的数据是按照如下排列

1 root  2x  3 0  4 0  5 root  6 /root  7/bin/bash\nbin   8 x  9 1  10 1

由于awk默认输出换行符是\n,因此在输出的时候awk会在内存的行的每行结尾附加输出换行符号\n,因此输出是效果如下:

1 root  2 x  3 0  4 0   5 root  6 /root  7 bin/bash  bin  8 x  91   10 1

输入换行符

※NR:代表的是记录符,记录偶从那个行,他是个变量值(相当于读了多少行)

BEGIN模块 开头输入一次  模式{动作} 有几行就是几次  END 模块 结尾输入一次

输出换行符

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

BEGIN模块 开头输入一次  模式{动作} 有几行就是几次  END 模块 结尾输入一次

让echo –e  处理内容里面的换行符\n

面试题:按单词出现频率降序排序(计算机文件中每个单词的重复数量)

注:此处用sort与uniq

Sort :排序 按着26字符默认排序

Sort  -n 按照数字排序

Sort  -r 逆转排序

Sort   -k* 指定第几列排序

Uniq :去除重复的

Uniq –C 去除重复的同时,显示次数

排序

Tr:替换命令

awk的总结的更多相关文章

  1. awk命令简介

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  2. awk使用说明

    原文地址:http://www.cnblogs.com/verrion/p/awk_usage.html Awk使用说明 运维必须掌握的三剑客工具:grep(文件内容过滤器),sed(数据流处理器), ...

  3. awk应用

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  4. 3.awk数组详解及企业实战案例

    awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...

  5. shell——awk

    awk -F"分隔符" "command" filename awk -F":" '{print $1}' /etc/passwd 字段引用 ...

  6. 【Linux】AWK入门

    什么是AWK AWK是一种用于处理文本的编程语言工具,一个模式匹配程序.一个典型的示例是将数据转换成格式化的报告. 在命令行输入如下awk命令: awk -F":" '{ prin ...

  7. 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od

    awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk ''  | output 1.首先要知道形式 awk 'command' fi ...

  8. sed awk grep三剑客常用

    sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...

  9. awk命令速查

    awk与sed.grep一样都是为了加工数据流而做成的文本加工过滤器命令.awk会事先把输入的数据根据字段单位进行分割.在没有制定分割单位的情况下,以输入数据中的空格或Tab为分隔符.与sed相比,它 ...

  10. Sed、Awk单行脚本快速参考

    文本间隔: # 在每一行后面增加一空行 sed G awk '{printf("%s\n\n",$0)}' # 将原来的所有空行删除并在每一行后面增加一空行. # 这样在输出的文本 ...

随机推荐

  1. Mycat连接数据库之后导致表名全小写的问题分析研究

    初步研究:通过部署发现在Mycat中部署逻辑表表名大小写混合时,在Mycat连接后出现全变小.容易造成错误逻辑表(按混合表名创建物理表): 可能拯救的方法: 1.Linux下部署安装MySQL,默认不 ...

  2. Ruby对象、变量和常量

    Ruby操作的数据主要有部分:对象.类.变量.常量. 对象 在Ruby中表示数据的基本单位称为对象,在Ruby中一切都是对象. 经常使用对象: 数值对象 2.3.14.-5等表示数字的对象,另外还有矩 ...

  3. linux命令用来查看日志关键字

    1.查看日志 前 n行: cat 文件名 | head -n 数量 demo: cat  test.log | head -n 200 # 查看test.log前200行 2.查看日志 尾 n行: c ...

  4. uva 1555 Garland

    题意:有n个灯笼.第一个的高度是A,最后一个是B.灯笼的关系给出.并要求每一个灯笼的高度是非负数的.求最低的B 思路:推出公式:H[i]=2*H[i-1]+2-H[i-2],然后枚举H[2],在知道H ...

  5. web.xml配置编码过滤器解决中文乱码问题

    为了防止前端传入的中文数据出现乱码问题,使用Spring提供的编码过滤器来统一编码. 要使用编码过滤器,只需要在web.xml中添加如下代码: <filter> <filter-na ...

  6. Linux命令(九)——系统监视和进程控制

    与windows系统一样,linux系统中也有很多进程在同时运行,每个进程都有一个识别码PID,它是进程的唯一识别标志. 一.进程的类型 1.系统进程 在操作系统启动后,系统环境平台运行所加载的进程, ...

  7. poj3621 Sightseeing Cows

    01分数规划 二分+spfa负环(SLF优化) #include<cstdio> #include<iostream> #include<cstring> #inc ...

  8. [jqpolt] formatString 日期格式化列表

    // 年 %Y   2008 %y   08 // 月 %m   09 %#m   9 %B   September %b   Sep // 日 %d   05 %#d   5 %e   5 %A   ...

  9. rehat7.X下postgresql 11编译安装

    文档目录结构: 一.准备 操作系统版本:rehat7.6 Postgresql:11.2 软件安装目录:/pgsql11/basedir 数据文件存放目录:/pgsql11data/ 11.2的下载地 ...

  10. SVO在ROS下的配置与运行

    最近在做实验的时候,需要配置SVO,下面讲讲其中的过程以及遇到的问题: 首先说明配置环境:Ubuntu 14.04 + ROS indigo,ROS的安装我参考了ROS的官网上给出的教程:http:/ ...