linux shell基础awk命令(编辑中)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell基础awk命令(编辑中)相关的知识,希望对你有一定的参考价值。
一、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命令(编辑中)的主要内容,如果未能解决你的问题,请参考以下文章