unix shell学习笔记3

4.  awk

4.1      awk简介

awk,用于处理数据和生成报告的UNIX编程语言,nawkawk的新版本,gawklinuxGNU版本。

4.2      awk命令

  • awk [options] ‘script’ files
  • awk [option] –f scriptfile files

3种格式:

awk ‘pattern’ filename

awk ‘{action}’ filename

awk ‘pattern {action}’

通过管道输入:

格式: command | awk ‘pattern’

                command  | awk ‘{action}’

                command | awk ‘pattern {action}’

option选项

-F fs       指定输入文件拆分隔符,如 –F : 指用:分隔来做拆分

-v var=value       赋值一个用户定义变

-f scriptfile          从脚本文件中读取awk

-mf nnn and  -mr nnn     nnn值设置内在限制,-mf选项限制分配给nnn的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适

Pattern

Pattern 包含以下:

  • /正则表达式/
  • 关系表达式
  • 模式匹配表达式
  • 模式
  • BEGIN
  • END

action

  • 变量或数组赋值
  • 输出命令
  • 内置函数
  • 控制流命令

 

sss sss ss aa

4.3      awk的环境变量

变量

描述

$n

当前记录的第n个字段,字段间由FS分隔。

$0

完整的输入记录。

ARGC

命令行参数的数目。

ARGIND

命令行中当前文件的位置(0开始算)

ARGV

包含命令行参数的数组。

CONVFMT

数字转换格式(默认值为%.6g)

ENVIRON

环境变量关联数组。

ERRNO

最后一个系统错误的描述。

FIELDWIDTHS

字段宽度列表(用空格键分隔)

FILENAME

当前文件名。

FNR

NR,但相对于当前文件。

FS

字段分隔符(默认是任何空格)

IGNORECASE

如果为真,则进行忽略大小写的匹配。

NF

当前记录中的字段数。

NR

当前记录数。

OFMT

数字的输出格式(默认值是%.6g)

OFS

输出字段分隔符(默认值是一个空格)

ORS

输出记录分隔符(默认值是一个换行符)

RLENGTH

match函数所匹配的字符串的长度。

RS

记录分隔符(默认是一个换行符)

RSTART

match函数所匹配的字符串的第一个位置。

SUBSEP

数组下标分隔符(默认值是\034)

 

4.4      awk运算符

运算符

描述

= += -= *= /= %= ^= **=

赋值

?:

C条件表达式

||

逻辑或

&&

逻辑与

~ ~!

匹配正则表达式和不匹配正则表达式

< <= > >= != ==

关系运算符

空格

连接

+ -

加,减

* / &

乘,除与求余

+ - !

一元加,减和逻辑非

^ ***

求幂

++ --

增加或减少,作为前缀或后缀

$

字段引用

in

数组成员

 

比较表达式: 

conditional expression1 ? expression2: expression3

例如:

$ awk '{max = {$1 > $3} ? $1: $3: print max}' 

如果第一个域大于第三个域,$1就赋值给max,否则$3就赋值给max

4.5      实例

·         $ awk '/^(no|so)/' test-----打印所有以模式noso开头的行。

·        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值