awk的总结
入门总结
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的总结的更多相关文章
- awk命令简介
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- awk使用说明
原文地址:http://www.cnblogs.com/verrion/p/awk_usage.html Awk使用说明 运维必须掌握的三剑客工具:grep(文件内容过滤器),sed(数据流处理器), ...
- awk应用
h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...
- 3.awk数组详解及企业实战案例
awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...
- shell——awk
awk -F"分隔符" "command" filename awk -F":" '{print $1}' /etc/passwd 字段引用 ...
- 【Linux】AWK入门
什么是AWK AWK是一种用于处理文本的编程语言工具,一个模式匹配程序.一个典型的示例是将数据转换成格式化的报告. 在命令行输入如下awk命令: awk -F":" '{ prin ...
- 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od
awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk '' | output 1.首先要知道形式 awk 'command' fi ...
- sed awk grep三剑客常用
sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...
- awk命令速查
awk与sed.grep一样都是为了加工数据流而做成的文本加工过滤器命令.awk会事先把输入的数据根据字段单位进行分割.在没有制定分割单位的情况下,以输入数据中的空格或Tab为分隔符.与sed相比,它 ...
- Sed、Awk单行脚本快速参考
文本间隔: # 在每一行后面增加一空行 sed G awk '{printf("%s\n\n",$0)}' # 将原来的所有空行删除并在每一行后面增加一空行. # 这样在输出的文本 ...
随机推荐
- Spring bean生命周期(一)
当容器销毁的时候,先调用DisposableBean实现类的destroy()方法,在调destory-method方法.
- 怎样手动的干净的删除linux上的ORACLE数据库
近期在用VMWARE虚拟机做ORACLE的数据库实验.我们都知道在WINDOWS上,我能够到加入删除程序里去自己主动删除已经安装的全部的应用程序.可是在LINUX上没有这个服务能够进行自己主动的删除. ...
- Scrapy源代码分析-经常使用的爬虫类-CrawlSpider(三)
CrawlSpider classscrapy.contrib.spiders.CrawlSpider 爬取一般站点经常使用的spider.其定义了一些规则(rule)来提供跟进link的方便的机制. ...
- 编程算法 - 数组中的逆序对 代码(C)
数组中的逆序对 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 在数组中的两个数字假设前面一个数字大于后面的数字, 则这两个数字组成一个逆序对. ...
- UI 经常用法总结之--- UIWindow UIView (不断更新中)
UIWindow (UIView) 1.创建一个uiwindow对象 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScr ...
- 获得拼凑SQL语句运行后的结果
拼凑式的SQL语句太普遍了,比如说,任意条件的查询. 这种拼凑SQL语句,如果在数据库端组装,必然是一条长长的字符串,然后 exec(@sql). 如果这条语句写在存储过程里边,存储过程的调用方会获得 ...
- 关于jetty服务器默认首页和端口设置
一.jetty服务器部署.启动成功后,在浏览器输入http://localhost:8080/ 可以直接访问到jetty欢迎首页. 这是因为在Jetty包中默认带了一个test.war的应用,在${J ...
- Windows 10 MBR转GPT分区
注意:分区有风险,操作需谨慎,提前备份好数据. 说明: 1.有“系统保留”的分区,可以直接删除,用来做GPT分区的UEFI启动分区. 2.没有“系统保留”分区的,需要在分区最前面调整分区大小,留出30 ...
- 在Mac OSX上安装ffmpeg && ffmpeg命令行将h264封装为mp4
ffmpeg功能强大,可以通过命令行来对音视频进行处理.为了使用其功能,我在Mac上对其进行了安装. 我的Mac OS X 系统版本:OS X Yosemite, 10.10.14 关于ffmpeg在 ...
- Android View事件分发与传递
在Android中,人们主要通过手指与系统交互.Android把所有的touch事件都被封装成MotionEvent来进行处理,其中包括了手指点击的位置,时间等信息.其事件类型主要包括:ACTION_ ...