首页 > 其他 > 详细

awk 学习笔记

时间:2020-05-16 19:22:27      阅读:51      评论:0      收藏:0      [点我收藏+]

格式:

awk [options]   ‘program‘   var=value file…

program: BEGIN语句块、 模式匹配的通用语句块 、END语句块

常用选项:-F 指定输入分隔符;-v var=value 变量赋值

支持管道,action默认为print$0,pattern为空时无筛选,

默认分隔符为空格,

有输出动作具体字符串指定时(print “hello ”),不输出输入内容

默认支持正则表达式

awk变量

常用内置变量

FS,字符分隔符,     OFS, 输出分隔符,
RS,输入换行符         ORS,输出换行符
NF,字段数量          FILENAME,文件名
NR,记录编号,行号         FNR,文件分别计数
ARGC,命令行参数个数    
ARGV,数组,保存的是命令行所给定的各参数

printf

printf “FORMAT”, item1, item2, ...

不会自动换行,必须指定格式

格式符:

%c:显示字符的ASCII码 
%d, %i:显示十进制整数 
%e, %E:显示科学计数法数值 
%f:显示为浮点数 %g, 
%G:以科学计数法或浮点形式显示数值 
%s:显示字符串 
%u:无符号整数 
%%:显示%自身

#[.#]  第一个数字控制显示的宽度;第二个#表示小数点后精度,如:%3.1f

-    左对齐(默认右对齐) 如:%-15s

+      显示数值的正负符号   如:%+d

模式匹配符

~ 左边是否和右边匹配,包含关系

!~ 是否不匹配

逻辑操作符:

与:&&,并且关系

或:||,或者关系

非:!,取反

数组

awk的数组是关联数组

由于awk本体就有循环,所以 awk ‘{count[$1]++}‘ 就可获取隔行第一列组成的数组,使用for循环输出

统计数量并输出:

awk ‘{count[$1]++}END{for(i in count){print i,count[i]}}‘ | file

 

 

awk 学习笔记

原文:https://www.cnblogs.com/zy2271/p/12901697.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!