Linux之awk命令
格式:awk [参数] <条件> 文件路径
<条件> —— <模式/动作>
模式 ——横向切割文件内容,按行切割字符串
动作——纵向切割文件内容,按列切割字符串
动作 在模式后边用{ }
切割时先横切再竖切
不加参数默认按空格分列
-F 指定分列符
awk筛选IP地址
print中NR代表行号
$NF 最后一列
awk ‘BEGIN{} 模式/动作 END{} ‘ 文件名
BEGIN默认换行符 RS=”\n”
RS读入换行符
ORS输出换行符
sort -k数字 指定排序序列
awk支持过滤,/ /进行过滤
awk ‘/!5/’ test
awk中NR代表行号
awk 'NR==5' test
awk 'NR<5' test
awk模式
正则表达式作为模式
比较表达式作为模式
范围模式
特殊模式BEGIN和END
awk正则匹配操作符
~ 正则匹配操作符
!~ 取反
对某一列进行输出匹配
精确匹配
awk正则表达式练习题
测试文件
练习一:显示姓Zhang的人的第二次捐款金额及她的名字
练习二:显示Xiaoyu的名字和ID号码
练习三:显示所有以41开头的ID号码的人的全名和ID号码
练习四:显示所有以一个D或X开头的人名全名
练习五:显示所有ID号码最后一位数字是1或5的人的全名
练习六:显示Xiaoyu的捐款,每个值都以¥开头如¥520¥200¥135
练习七:显示所有人的全名,以姓,名的格式显示
用awk中for循环输出文件有多少行
查找空行数
求和
处理文件内容,根据域名进行计数排序处理