现学现卖:
> ll | awk '/09:19/{print $NF}'|xargs rm -rf
这条复合命令会找出当前目录下所有生成时间为09:19的文件,然后删除它们。
原文:
http://techbbs.zol.com.cn/1/85_1029.html
1. awk非常适合于结构化的文本文件(行、列数据)复杂处理。相对于sed而言,它可进行复杂的编程处理,并且可以产生复杂的报表输出。
2. awk通常有三个版本,旧awk、nawk(新)、gawk。Solaris下建议用nawk,因为旧awk有很多功能不支持,例如数学运算幂 ^ ,函数getline,system等。
3. 基本语法:awk ‘pattern{action}’ filename 其中action内容可扩充,也可以有多个action。
执行顺序:awk一行行读入输入文件,顺序执行‘’内内容,按模式匹配来采取动作。
其他调用:awk可用内部变量和函数,条件与循环语句,也可执行数学运算和字符串操作。此外,可以使用BEGIN和END来执行处理前预操作和处理后后继操作。
A. 常用内部变量:NR(当前行数)NF(字段总数)$0(当前整行)$1(第一个记录)
FS(字段分隔符)OFS(输出字段分隔符)ORS(输出记录分隔符)
B.模式 pattern可以是/ /包含的匹配形式,也是条件语句如$3<10
C.BEGIN(处理文件前的action,常包含FS、OFS等)、END(处理文件后的action)
D.条件与循环:if else(next,exit),for do while (continue,break)
E.数学运算符 + - * / % ^;数学函数sin int;字符串函数length index gsub substr等
F.数组与关联数组:a[1]; a[$1]; a[$0]; a[b]
F.输出重定向和管道:> >> | ;awk内部命令:getline、system等
4.awk的三种调用方式: