日期:2014-05-16  浏览次数:20865 次

awk好强大
    之前只使用过sed处理配置文件的配置信息,后来看一些博客里屡屡提到awk,于是就着重看了一遍。很令我吃惊,awk简直就是一门动态语言了,其创建者也把它定义为样式扫描和处理语言。
    且先不说sed能处理的事情,awk都能处理。它的长处在于解析,分离和重新组织具有固定格式的文本信息。
    先举个简单的例子:df -h用于查看各个分区的磁盘使用情况
# df -h -BG
文件系统       1G-块  已用  可用 已用% 挂载点
/dev/sda5        19G    3G   16G   13% /
udev              1G    1G    1G    1% /dev
tmpfs             1G    1G    1G    1% /run
none              1G    0G    1G    0% /run/lock
none              1G    1G    1G    1% /run/shm
/dev/sda2       438G  113G  304G   28% /home

    统计sda2分区剩余空间的方式(单位G字节)是:df -h -BG | awk '/sda2/ {print substr($4, 1, length($4)-1)}' 直接输出:304.
    当然还有好多情况下可以使用。
    欢迎拍砖……
------解决方案--------------------
我也来一个
df -h -BG 
------解决方案--------------------
 awk '/sda2/{gsub(/G/,"",$4);print $4}'


推荐阅读教程:
《O'Reilly sed & awk 2nd Edition》
------解决方案--------------------
这是个炫耀贴!
你让我这样不会awk的人情何以堪!
哼!
------解决方案--------------------

每次写这么一坨我都要重新看一遍awk的语法~~~
------解决方案--------------------
第一代用bash+sed+awk
第二代用perl
后来就是python、ruby什么的了