码迷,mamicode.com
首页 > 系统相关 > 详细

linux shell基础(六)awk命令(编辑中)

时间:2018-01-17 18:25:55      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:分享图片   图片   文件   链接   rip   str   一个   外部变量   命令   

一、awk命令
   awk是一种**编程语言**,用于在linux/unix下对文本和数据进行处理(gawk - pattern scanning and processing language)。centos7中的awk是gawk的链接。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。前面的grep、sed只是单纯的工具,而awk已经是一门语言了,可见awk的功能将比较强大

         用法:
         awk [options] ‘script‘ var=value file(s)
   awk [options] -f scriptfile var=value file(s)

         选项:
   -F fs   fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:
   -v var=value   赋值一个用户定义变量,将外部变量传递给awk
   -f scripfile  从脚本文件中读取awk命令

二、对文本竖列的操作

awk命令能够方便的通过指定分隔记号将文本分成特定的列,然后在针对分出来的竖列进行操作

1、显示test.txt文档的第一列前5行。

awk -F ‘:‘ ‘{print $1}‘ test.txt | head -n 5

命令解释:-F ‘:‘ 就是说这个文件以:作为分隔符,我们做实验的是passwd文件,它本身就被:分割成了7段,‘{}‘中就是操作的描述,命令中的print $1 就是显示第1列。

技术分享图片

2、显示test.txt文件所有竖列的内容

awk -F ‘:‘ ‘{print $0}‘ test.txt
awk ‘{print $0}‘ test.txt

注意与上一条命令的区别,$1表示第一列,$0表示所有列。
技术分享图片

效果上其实和cat一样。

3、awk也可以
awk命令在没有指定-F 分割符号或分割字符串时,默认以空格或者空白段作为分隔符

我们先创建一个测试文档,以空格作为分隔符
技术分享图片

后我们输入下列命令

awk ‘{print $1}‘
awk ‘{print $1,$3}‘
awk ‘{print $1,$2}‘

技术分享图片

可以看出awk自动把空格作为分段记号,不管是多少个空格。

4、指定#为显示分隔符显示特定列(注意不会影响原始文件,只是影响显示)

awk -F ‘:‘ ‘{print $1"#"$3"#"$7}‘ test.txt

技术分享图片

三、awk匹配功能举例

linux shell基础(六)awk命令(编辑中)

标签:分享图片   图片   文件   链接   rip   str   一个   外部变量   命令   

原文地址:http://blog.51cto.com/11934539/2062116

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!