Shell文本处理 awk命令
1定义
awk是一个报告生成器,它拥有强大的文本格式化能力。
通俗的说,我们可以利用awk命令将一些文本处理成我们需要的样子,例如表格。
awk早期是在unix上实现的,我们现在在linux上使用的其实是gawk,全称为GUN awk.
awk也是一门语言,它支持判断,数组,循环等功能。
2.语法
awk [options] 'pattern{action}' file
adction就是动作,在awk中,因为要将格式化后的文本输出,所以常用的动作有print和printf.
pattern 是指模式,awk中包含两种特殊模式:
- BEGIN 指处理文本前需要做的操作
- END 指处理文本后需要做的操作
示例:
awk是逐行处理的,当它处理一个文本时,处理完当前行,然后接着处理下一行,它以换行符作为标记。
在每一行中,它以用户指定的分割符去分割当前行,没有分割符是,默认以空格作为分割符。Tab键被默认为连续的空格。
3.示例:
1.环境变量FS和BEGIN改变分隔符
2.关系和布尔运算
3.匹配正则表达式
4.awk还可以与if-else语句结合使用
5.awk和perl支持一些扩展的正则表达式
例如:
1.? 匹配 ? 之前的字符0次或者一次
2.+ 匹配 + 之前的字符多次,但至少一次
3. () 和 | 结合使用,表示一组可选字符的集合
4.应用
1.计算显示能够登陆系统的用户的个数
2.显示本机ip
3.统计文件的行数