awk

来源:互联网 发布:java上传文件相对路径 编辑:程序博客网 时间:2024/06/15 21:27

awk也是一个非常棒的数据处理工具!相较于 sed常常作用于一整个行的处理, awk则比较倾向于一行当中分成数个『字段』来处理。因此,awk相当的适合处理小型的数据数据处理呢!

 

$1表示每行的第一列内容 $2表示每行的第二列内容

$0表示全部内容 

BEGIN用于预设变量

 

例子1:使用awk将日期格式20091011转换成2009-10-11内容存在1.txt里面

awk ‘BEGIN {FS=":"} {print $1$2$3$4”-”$5$6”-”$7$8}’ 1.txt

例子2:行汇总计算。这个例子使用到的是标准的条件类型1{动作1}条件类型2{动作2},来分段处理。

注意{}中需要使用多个命令,需要用分号或回车分割

例子3:找出包含特定字符的行(没有指定特定字段在一列):

cat /etc/passwd | awk 'BEGIN {FS=":"} /potato/ {print $0}' 

#通过标准输入的行中匹配斜杠中的特殊字段,找到后输入该行(print $0表示打印整行)

例子4:找出包含特定字符的行(特殊字段在第一列),只打印出该行第二个字段:

cat /etc/passwd | awk 'BEGIN {FS=":"} $1=="tom" {print $2}'