首页 > 代码库 > awk进阶

awk进阶

整理的awk的小技巧

begin是要放在正则前面的,按照这个顺序:

awk begin{} /.*?/ {action}end{} file

FS=‘:‘ 和 -F: 是等同的
for循环和便利数组,

for(i=0;i<10;i++)print i,ENVIRON[i] 

或者

 for(i in ARGV){print i,ARGV[i]}

匹配正则表达式

if(a ~ /^100*/)

不匹配

if(a ~! /^100*/)

多文件操作,重点学习一下:

dahu@dahu-OptiPlex-3046:~/myfile$ awk FNR==1{print "\r\n"FILENAME}{print $0} a.txt b.txt  

a.txt
100 wang man
200 wangsan woman
300 wangming man
400 wangzheng man

b.txt
100 90 80
200 80 70
300 60 50
400 70 20

看下回显信息,FNR==1相当于一个条件用法,在第一行显示文件名,这个用法可以。类似的,我可以第二行/第三行显示

 

awk进阶