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

awk详解【二】

时间:2015-04-22 02:13:38      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:awk   常用   命令   

awk作为强大的文本处理工具,对于我们日常的工作来说必不可少。

awk的基本语法:

       awk [选项参数] ‘script‘ var=value file 或者

       awk [选项参数] -f scriptfile var=value file

man awk

       技术分享

基本参数说明

    -F:指定文件分隔域,

    -v var=value or --asign var=value:赋值一个用户定义的变量

    -mf nnn and -mr nnn:目前没用到过。可自行google

    -W compact,-W traditional:在兼容模式下运行awk,其实awk和gawk都差不多完全一样。

    -W copyleft,-W copyright:打印简短的版权信息。

    -W help,-W usage:打印awk的帮助信息。

    -W lint or --lint:打印不能向传统unix平台移植的结构警告。

    -W posix:打开兼容模式,但有限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;flush无效。

    -W re-interval:允许间隔正则表达式的使用。

    -W source program-text:使用program-text作为源码,可以与-f命令混合使用。

    -W version:打印bug版本信息。

用法:我这儿有一个文本文件test.txt,内容如下

技术分享

awk默认以空格或者tab作为分隔符。

技术分享

试着以,为分隔符。

技术分享

上述命令等效于:awk ‘BEGIN {FS=","} {print $1,$4}‘ test.txt【这是内置变量的用法】

使用多个分隔符,先空格分割,然后对分割结果使用","分割。

技术分享

awk设置变量【可以指定多个变量】

技术分享

技术分享

awk的顺序号NR,匹配文本行号。

技术分享

awk指定输出分隔符号。

技术分享

正则使用

匹配$1包含“th”,并打印$2,$4,"~"符号是代表匹配正则,代表模式开始,//中是要匹配的模式

技术分享

输出包含"is"的行

技术分享

如何忽略大小写

技术分享

取反操作,有点想grep的表达方式。

忽略大小写,匹配第一列不是/th/的行。

技术分享

另一种写法

技术分享

awk脚本

awk脚本的两个关键词:BEGIN and END[注意是大写]

    BEGIN{表示执行前的语句}

    END{表示执行后的语句}

    其中可以加流程控制语句[if while for break continue break等等]

技术分享

待续

awk详解【二】

标签:awk   常用   命令   

原文地址:http://coward.blog.51cto.com/7599475/1636645

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