awk报告生成器

简介:

AWK,aho,weinberger,kernighan

GAWK,GNU awk

我们在linux上使用的awk其实是gawk的链接文件

 

  • 基本用法

gawk   [options]  'program' file

program:PATTERN

语句之间用分号分割

ps:‘{print $1,$2,$3}’

options

-F:指明输入时用到的字段分隔符,默认是空白分隔符

 

 cat/etc/fstab | tail -4 | awk '{print $1,$4}'

打印出切片第一字段和第四字段

ps:用逗号分隔各个字段

 

1、内建变量FS,输入input fieldseperator   OFS,输出  RS='  ' 输入空格作为换行符  ORS='  '输出时

  NF,'{print NF}' 每行字段数   $NF最后一字段

  NR,'{print NR}' 行编号    FNR,每个文件

 ARGC,命令行参数的个数

 ARGV

awk -v FS=':' -vOFS='-' '{print $1,$3}' /etc/passwd

指定输入:分隔符,输出-分隔符

 

 

2、自定义变量:-v var=value,区分大小写

awk -vtest='hello' 'BEGIN{print test}' /etc/fstab 

 

 awk'{test="helo";print test,$1}' /etc/fstab 

 

3、printf命令

格式化输出,printf FORMAT,item1,item2,……

FORMAT必须给出,不回自动换行,需要显示给出\n,需要分别为后面没个item指定格式符

格式符:%c,ascii码    %d,显示十进制整数   %e,科学计数法   %f,浮点数 %g,%G科学计数或浮点数   %s显示字符串  %u无符号  %%百分号自身      左对齐减号,右对齐加号

awk -F: '{printf"username:%-8s,uid:%d\n",$1,$3}' /etc/passwd

 

4算数操作符:+,-,*,/,^,%

      字符串操作符号:没有符号的操作符字符串连接,赋值操作符,比较操作符,模式匹配~不匹配!~,逻辑操作符&&或||非!,函数调用function(),条件表达式selector?if-true-expression:if-false-expression

awk -F:'{$3>=1000?usertype="common user":usertype="sysadmin orsysuser";printf "%8s:%-s\n",$1,usertype}' /etc/passwd

 

5、pattern

empty:空模式,匹配每一行

/pattern/仅处理匹配到的

relational关系表达式,结果为真为假,结果为真的才被处理,一般结果为非0值都为真

 

6、action

expressions表达式

controlstatements:if,while

compoundstatements组合语句

input statements

output statements

7、控制语句

if(条件){true}

if(条件){true} else {false}

 

while(条件){true}

do{循环}while()

 

for(expr1;expr2....){循环}

deletearray[index]删除数组中元素

deletearray删除整个数组

exit

awk -F:'{if($3>=500){printf "commonusr:%-8s\n}",$1} else {printf"sysusr:%-8s\n",$1}}' /etc/passwd

awk -F:'{if($NF=="/bin/bash") print $1}' /etc/passwd

awk'{if(NF>5) print }' /etc/fstab 

 awk -F:'/^root/{i=1;while(i<=NF){if(length($i)>=4){print $i,length($i)};i++}}'./passwd 

       本文转自echoroot 51CTO博客,原文链接:,如需转载请自行联系原作者


 

      本文转自echoroot 51CTO博客,原文链接:http://blog.51cto.com/echoroot/1946163,如需转载请自行联系原作者


相关文章
|
4月前
|
Unix Java Linux
Linux脚本中的字符处理与awk编程|WC统计
Linux脚本中的字符处理与awk编程|WC统计
46 0
|
6月前
|
缓存 BI Linux
《Linux操作系统编程》第九章 数据查找和筛选工具 : 了解流编辑器sed和报表生成器awk的简单使用
《Linux操作系统编程》第九章 数据查找和筛选工具 : 了解流编辑器sed和报表生成器awk的简单使用
51 0
|
索引 Perl
AWK进行简单分析文本
AWK进行简单分析文本
63 0
|
SQL 自然语言处理 前端开发
wc 统计已过时,cloc 每一行代码都有效
我们通常用代码量来评判一个程序员技术的高低或一个项目的大小,阅读新项目源码时,也需要了解其代码量,心里有个预期。那如何统计代码量呢?
wc 统计已过时,cloc 每一行代码都有效
|
Perl
使用 awk 命令统计文本
下面只是在工作中可能会遇到的一个场景,所以记录下来,如果小伙伴有更合适的方式来统计计算,欢迎留言。
211 0
|
Web App开发 网络协议 Unix
Linux-文本处理三剑客awk详解+企业真实案例(变量、正则、条件判断、循环、数组、分析日志)
文本处理 awk 1.awk简介 awk是一种编程语言,用于在Linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其他命令的输出,它支持用户自定义函数和动态正则正则表达式等先进功能,是Linux/unix下的一个强大的编程工具。它在命令行中使用,但更多是作为脚本来使用。
410 0
Linux-文本处理三剑客awk详解+企业真实案例(变量、正则、条件判断、循环、数组、分析日志)
|
Shell Perl 网络协议