概述
awk是专门为文本处理设计的编程语言,是一门数据驱动的编程语言,与sed类似都是以数据驱动的行处理软件,主要用于数据扫描、过滤、统计汇总工作,数据可以来自标准输入、管道或者文件。
其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母
awk在20世纪70年代诞生与贝尔实验室。现在使用的版本是1988年发布的Gnu awk。
基础语法
记录与字段
awk是一种处理文本文件的编程语言,文件的每行数据都被称为记录,默认以空格或制表符为分隔符,每条记录被分成若干字段(列),awk每次从文件中读取一条记录。
使用方法:
awk'{pattern+action}'{filenames}
准备学习文件text.txt
test.txt
1:yanhualei
2:shidiwei
3:awk
4:sed
5:少年强则中国强
6:nl
7:tail
8:head
9:cat
10:wc
开始学习
1. print打印 printf格式化输出
awk -F ":" '{print}' test.txt
awk -F ':' '{printf "%-8s %-10s\n"}' test.txt
结果:
1 yanhualei
2 qitiandasheng
3 laoliu
4 awk
5 xxxxxxxxx
2. -F 自定义分隔符
- 按照 ':'分隔方式,获取第一个和第二个字段
awk -F ":" '{print $1,$2}' test.txt
注意:命令中必须使用单引号
awk -F "[:,_]" '{print $1, $2}' test.txt
以:或者_作为字段分隔符打印第一个和第二个字段
3. FS输入字段分隔符变量,OFS输出字段分隔符变量
FS :等同于-F
3.txt
1,2,3,4,5
更改分隔符的两种写法:
a. awk -F "," 'NR==