高级编程(gawk)

高级编程

1.1深入讨论awk

条件操作符

      

操作符

描述

<  

小于

>=

大于等于

<=

小于等于

==

等于

!=

不等于

~

匹配正则表达式

!~

不匹配正则表达式

 


逻辑操作符

 

操作符

描述

&&

and

||

or

!

not

Awk  内置变量

             

ARGC

命令行参数个数

ARGV

命令行参数排列

ENVIRON

支持队列中系统环境变量的使用

FILENAME

Awk浏览的文件名

FNR

浏览文件的记录数

FS

设置输入域分隔符,等价于命令行—F选项

NF

浏览记录的域个数

NR

已读的记录数

OFS

输出域分隔符

ORS

输出记录分隔符

RS

控制记录分隔符

 

awk –F “#”  ‘{print NR,NF,S0,ENVIRON[“USER”],ARGC,ARGV[1],FNR}’  grade.txt

 

awk 字符串函数

      

gsub(r,s)

在整个$0中用s替代r    返回值为10

gsub(r,s,t)

在整个t中用s替代r

index(s,t)

返回s中字符串t的第一个位置

length(s)

返回s 长度

match(s,r)

测试s是否包含匹配r 的字符串

split(s,a,fs)

fs上将s分成序列a

sub(r,s)

$0中最左边最长的子串代替s

substr(s,p)

返回字符串s中从p 开始的部分

substr(s,p,n)

返回字符串s 中从p 开始长度为n的后缀部份

Sprint(fmt,exp)

返回经fmt格式化后的exp

 

awk 转义字符

\b

退格键

\t

Tab

\ddd

八进制

\n

新行

\c

任意其他特殊字符,例如\\为反斜线符号

\r

回车键

\f

走纸换页

awk  printf修改符

 

%c

ASCII字符

%d

整数

%f

浮点数,例如(123.44

%e

浮点数,科学记数法

%g

Awk决定使用哪种浮点数转换e或者f

%o

八进制数

%s

字符串

%x

十六进制

%n

新行

 

awk数组

  awk  ‘BEGIN {split(“as#well# 1234” ,array,”#”);print  array[1],”\t”,array[2]}’

awk数组下标从1开始

 

 

你可能感兴趣的:(职场,gawk,休闲,高级shell编程)