linux中的三剑客:grep
、sed
、awk
grep
更适合单纯的查找 或匹配文本sed
更适合编辑匹配到的文本awk
更适合格式化,对文本进行较复杂格式处理
awk,名称取自它的3个创始人的姓氏的首字母:阿尔佛雷德·艾侯(Alfred Aho)、彼得·温伯格(Peter Weinberger)、布莱恩·柯林汉(Brian Kernighan)。
是一个优良的 文本处理工具,是Linux/Unix环境中现有的功能最强大的 数据处理引擎之一。
awk
经过改进生成的新的版本是nawk
(New awk),gawk
。现在默认linux系统下日常使用的是gawk
(gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展),用命令可以查看正在应用的awk
的来源(ls -l /bin/awk
)
[root@master ~]# ls -l /bin/awk
lrwxrwxrwx. 1 root root 4 Apr 11 2019 /bin/awk -> gawk
[root@master ~]# ll /usr/bin/awk
lrwxrwxrwx. 1 root root 4 Apr 11 2019 /usr/bin/awk -> gawk
再有一个专业的说法:awk是一个报告生成器,它拥有强大的文本格式化能力。
这里说的 【报告】可理解为 报表
或表格
,也就是说:可以利用awk命令,将一些文本整理成我们想要的样子,比如把一些文本整理成表
的样子;然后再展示出来。
awk 其实是一门编程语言,它支持条件判断、数组、循环等功能。所以,可以将awk 理解成一个脚本语言解释器。
awk的语法有两种形式
awk [options] script var=value file(s)
awk [options] -f scriptfile var=value file(s)
awk基本语法:
awk [options] 'program' file1, file2, ...
上述program可细分成:parttern 和action,即:
awk [options] 'Parttern{Action}' file
[root@master lx_awk]# pwd
/usr/local/src/lx_awk
执行一个打印的动作:
[root@master lx_awk]# echo ddd > testd
[root@master lx_awk]# ls
testd
[root@master lx_awk]# awk '{print}' testd
ddd
在Linux中,
df
命令的功能:用于检查linux服务器的文件系统的磁盘空间占用情况
df
是report file system disk space usage
简写。
参考大佬博客:【朱双印个人日志-awk】