码迷,mamicode.com
首页 > 其他好文 > 详细

awk的简单使用方法

时间:2015-04-27 23:57:36      阅读:323      评论:0      收藏:0      [点我收藏+]

标签:awk   $nf   linux   

一、简介

二、语法

三、action:执行动作

四、选项

五、内置变量NF

 

一、简介

    awk常用于分析数据生成报表,它将文件逐行读入,使用分隔符将数据分段后,进行处理。awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母,Linux中的awk通常说的是gawk。

   

二、语法

awk [options] ‘/pattern/{action}’/path/to/file

 

地址定界/pattern/:

    pattern1,pattren2:指定的行

    /pattern/:可以仅仅是模式匹配的行

    expression:可以表达式

[root@TESTHOST ~]# awk -F: ‘$3>500{print $1,$3,$7}‘ /etc/passwd    #分段后,用表达式比较第3段uid的值,
student 501 /bin/bash

    BEGIN:在处理任意行之前进行的操作

[root@TESTHOST ~]# awk -F: ‘BEGIN{print "username uid shell"}$3>500{print $1,$3,$7}‘ /etc/passwd    #此处意为在处理数据前,在行首先打印标题内容 
username uid shell
student 501 /bin/bash
You have new mail in /var/spool/mail/root

    END:行数据处理完后进行收尾操作

[root@TESTHOST ~]# awk -F: ‘$3>500{print $1,$3,$7}END{print "username uid shell"}‘ /etc/passwd    #此处意为行数据处理完后,在末行打印标题内容
student 501 /bin/bash
username uid shell

 

三、action:执行动作

    print:打印内容到屏幕

    printf:按照格式打印内容到屏幕

 

四、选项

    -F:指定分隔符

[root@TESTHOST ~]# awk -F: ‘/bash/{print $1,$3,$7}‘ /etc/passwd    #匹配内容中有“bash”的行,以分隔符“:”分段,打印第1、第3、第7段内容
root 0 /bin/bash
mockbuild 500 /bin/bash
student 501 /bin/bash

 

五、内置变量NF

    NF:Number of Filed,段数

    $NF:最后一列

[root@TESTHOST init.d]# echo $PWD    #此路径由3个分号分隔成4段内容
/etc/rc.d/init.d
[root@TESTHOST init.d]# echo $PWD | awk -F/ ‘{print $1}‘   #从结果看出第一段为分号前内容

[root@TESTHOST init.d]# echo $PWD | awk -F/ ‘{print $NF}‘    #$NF表示最后一段
init.d
[root@TESTHOST init.d]# echo $PWD | awk -F/ ‘{print NF}‘    #NF表示分隔的段数
4
[root@TESTHOST init.d]#

本文出自 “Arvin Lau” 博客,请务必保留此出处http://64314491.blog.51cto.com/2784219/1639406

awk的简单使用方法

标签:awk   $nf   linux   

原文地址:http://64314491.blog.51cto.com/2784219/1639406

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!