您的位置:首页 > 运维架构 > Shell

awk用法二

2016-01-03 16:24 549 查看
3、awk的printf命令 格式:printf format, item1 item2... 要点: (1) 要指定format; (2) 输出时不会自动换行,如需换行则需要给出\n; (3) format用于为后面的每个item指定其输出格式; (4) format格式的指示符都是%开头,后跟一个字符。 format常用的字符: %c:显示字符的ASCII码 %d,%i:十进制整数; %e,%E:科学计数法; %f:显示浮点数; %g,%G:以科学计数法格式或浮点数格式显示数值; %s:显示字符串; %u:显示无符号整数; %%:显示%自身。 format中常用修饰符: #:显示宽度; -:左对齐; +:显示数值的符号; .#:取值精度。 实例1:以固定宽度20输出/etc/passwd文件中前10条记录的用户名和shell信息:


上例中标注的部分含义为:两个字段都是以20个字符的宽度来显示,并且以换行符为每行的结束符。 实例2:将上例中的用户名以左对齐显示:

实例3:将3.14159取2位小数显示:


4、awk的操作符 算术操作符: x+y:加 x-y:减 x*y:乘 x/y:除 x**(^)y:乘方 x%y:取模 -x:负值 +x:转换为数值 字符串操作符: 连接:无需符号,直接将两个字符串放在一起就可以了; 赋值操作符: x=y:将y的值赋值给x; x+=y:将x+y的结果赋值给x; x-=y:将x-y的结果赋值给x; x/=y:将x除以y的结果赋值给x; x%=y:将x与y取模的结果赋值给x; x^=y或x**=y:将x取y次方的结果赋值给x; x++:将x+1的结果赋值给x; x--:将x+1的结果赋值给x; 注:如果模式自身是=号,要写为/=/ 比较操作符: x<y:如果x小于y则为真; x<=y:如果x小于等于y则为真; x>y:如果x大于y则为真; x>=y:如果x大于等于y则为真; x==y:如果x等于y则为真; x~y:模式匹配,x能够被y模式所匹配为真。 逻辑操作符: x&&y:如果x为真则执行y; x||y:如果x为假则执行y。 条件表达式: selector ?if-ture-expression: if-false-expression selector:条件 ?if-ture-expression:如果为真则执行此表达式 :if-false-expression:否则执行此表达式 实例4:判断/etc/passwd文件中uid大于500则显示为"Common user",否则显示为“admin user":

5、模式 (1)正则表达式 格式:/PATTERN/ 实例5:只显示/etc/passwd文件中存在root的行:

(2)表达式 以比较表达式居多,其结果为非0或非空字符串时满足条件,awk仅处理满足条件的行。 实例6:只显示uid大于等于500的行:

(3)特殊模式 BEGIN:在awk命令的program运行之前执行一次; END:在awk命令的program运行之后执行一次。 实例6:显示/etc/passwd文件中以root开头的行的用户名在人、UID、shell信息,显示时以逗号分隔各字段,并在输出结果后打印“THE END”。

(5)空模式 用于匹配任意行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bash awk shell脚本