ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

awk 学习笔记

2020-05-16 18:58:17  阅读:221  来源: 互联网

标签:count 输出 显示 笔记 学习 awk 数组 分隔符


格式:

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

 

 

标签:count,输出,显示,笔记,学习,awk,数组,分隔符
来源: https://www.cnblogs.com/zy2271/p/12901697.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有