1. 命令awk简介
a. awk是一种编程语言,用于对文本和数据进行处理。
b.具有强大得文本格式话能力
c.利用命令awk,可以将一些文本整理成需要的格式。
d.命令awk是逐行进行处理的
2. grep、sed、awk的简单比较
a. grep适合单纯的查找或者匹配文本
b. sed 适合匹配到的文本进行编辑
c. awk适合文本格式化,对文本进行比较复杂的格式处理
3. awk基本语法
awk [options] 'program ' file1,file2
对于上述语法中的program来说,可以细分未pattern和action,也就是说,wak的基本语法如下:
awk [options] 'pattern {action}' file action是指动作,awk擅长文本格式化,并且将格式化以后的文本输出。所以awk最常用的动作就是print和printf,因为awk要把格式化完成后的文本输出,所以常用。
例子1: 不使用[options] 也不指定pattern,直接使用action
例子2:不使用options 和 pattern,输出df信息的 第5列信息,$5表示将当前行按照分隔符分割后的第5列,不指定分隔符时,默认使用空格作为分隔符
例子3:$0表示整行,$NF表示当前分割后的最后一行 ($0和$NF均为内置变量)
注意:$NF表示分割后最后一个字段 ; NF表示当前行被分隔符切开后,一共几个字段。
a. 取最后一个列的数据
b. df命令被分割后,分割成6列, NF=6, 取倒数第二列数据
例子4:可以添加字段,将字段与文件中的列结合起来
例子5:AWK包含2种特殊的模式:
BEGIN 和 END BEGIN 表示指定的动作 需要在处理指定的文本(print $1,$2)之前执行。
END 表示在处理完所有指定的文本后,需要指定动作。