AWK——的使用-创新互联

 Awk的使用

成都创新互联-专业网站定制、快速模板网站建设、高性价比中宁网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式中宁网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖中宁地区。费用合理售后完善,10多年实体公司更值得信赖。

1     awk的基础知识

 awk是文本与数据的处理工具

 awk的特点是可以编程,并且处理灵活,功能更强大

 awk的应用:统计和制表等等

2     awk的处理方式和格式

 awk一次处理一行内容

 awk对每行可以切片处理

3   awk的格式有

 命令行格式

 脚本格式

4   命令行格式有

 基本格式

 扩展格式

5   基本格式

 awk

 参数

 命令

 操作的文件

6   命令由两部分组成

 正则表达式或逻辑判断式

 awk操作命令

7   awk操作命令语句

 内置函数

 控制指令

8  awk的内置参数

 内置参数的使用格式(awk  -F  ’:指定的分割符’  ’{print 内置参数}’  文件名)awk的内置变量1: $0表示整个当前行 $1每行第一个字段 $2每行第二个字段,awk内置参数的分割符  参数:-F  ’指定的分割符’  如果没有写将默认为空格,如果想要多个字段加逗号

9    awk的内置变量2

  NR每行的行号  NF字段数量的总数或每行的列数  FILENAME正在处理的文件名

 案例一: 显示文件中的每行的行号,每行的列数和对应行的用户名

 第一种  用print   awk -F  ’:’  ’{print ”Line行号: ”NR, ”Col列数:”NF”,”User用户名: ”$1}’  文件名

 第二种  用printf  awk -F  ’:’  ’{printf (”Line:%s  Col:%s  User:%s\n”,NR,

NF,$1)}’ 文件名  (s前面加上字符数,显示的时候格式会更整齐)

 案例二: 显示文件中用户ID大于100的行号和用户名

awk -F  ’:’  ’{if条件判断  ($3>100)  pint  ”Line:”NR, ”User: ”$1}’  文件名

 案例三: 在服务器log中找出Error的发生日期

 第一种: sed  ’/Error/p’ fresh.log  |  awk  ’{print  $1}’用sed找出有Error的行

  第二种: awk  ’/Error/{print  $1}’ fresh.log  用awk定位Error

10   逻辑判断式

 ~,!~匹配正则表达式      匹配   不匹配

 awk   -F  ’:’  ’要打印的东西如$1逻辑判断式如~/匹配的条件如^m.*/{print  $1}’ 文件名        打印出文件中所有以m开头的第一个字段

 = =,!=,< ,>判断逻辑表达式      等于   不等于     小于     大于

 awk -F  ’:’   ’输出的条件如$3>100  {print  $!,$3}’  文件名

 打印出文件中所有小于100的第一个字段和第三个字段

11      扩展格式

 在基本格式之前加入BEGIN,在基本格式之后加入END      

 案例一:  制表显示/etc/passwd每行的行号,每行的列数,对应行的用户名

awk  -F  ’:’ 开头部分’BEIND{print  “LINE行号  COL列数 USER用户名}’

 循环部分要打印的字段{print  NR每行的行号,NE每行的列数,$1每行的第一个字段}结尾部分END{print”------”FITENAME”------”}’   文件名

12    awk的逻辑处理案例

 案例一: 统计当前文件夹下的文件和文件夹占用的大小

ls  -l  |  awk  ’BEGIN (size=0)}{size+=$5}END{print  “ size is ” size/1024/1024”M” }’

 案例二: 统计显示/etc/passwd/的账户总人数

awk -F  ’:’  ‘BEGIN{count=0}$1!~/^$/{count++}END{print “count= ”count}’ 文件名

 统计显示UID大于100的用户名

Awk  -F  ‘:’  ‘BEGIN{count=0}{if  ($3 > 100) name[count++]=$1}END{for

(i=0;i

 案例三: 统计netstat-anp状态下为LISTEN和CONNECTED的连接数量

Netstat  -anp |  awk  ‘$6~/CONNECTED|LISTEN/{sum[$6]++}END{for  (i  in  sum)print  i,sum[i]}’

13    sed和awk的区别

 sed侧重于正则处理

 sed和awk可以共同使用

 awk和sed都可以处理文本

 awk侧重于复杂的逻辑处理

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


本文名称:AWK——的使用-创新互联
标题链接:http://scyanting.com/article/pcejh.html