Linux:awk命令解析

   awk语言最基本的功能是文件和字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。awk命令有三种模式分别为命令行模式,shell脚本模式和文本模式。
命令行模式:
  awk [-F]  '[awk命令]' [文件名]
     文件的每一行由域分隔符分隔开的每一项称为域,[-F]分隔符默认为空格。
 
awk内置变量:
ARGC    命令行参数的个数
ARGV    命令行参数数组
ARGIND 当前被处理文件的ARGV标志符
NR   已经读出的记录数
FNR    当前文件的记录数
FS   输入字段分隔符,
OFS输出字段分隔符
NF:当前记录中的字段个数
RS:输入记录分隔符,
ORS:输出记录分隔符,
 
# cat /etc/passwd | awk -F ':' '{print $1}'  #显示passwd中的用户
root
bin
daemon
adm
...
mysql
   root:x:0:0:root:/root:/bin/bash
$1 即第一个域,即账户名
# head -n 10 /etc/passwd | awk -F ':' 'BEGIN{print "name shell:"} {print $1"\t"$7} END {print "gg is fly!"}'
name shell:
root	/bin/bash
bin	/sbin/nologin
daemon	/sbin/nologin
adm	/sbin/nologin
lp	/sbin/nologin
sync	/bin/sync
shutdown	/sbin/shutdown
halt	/sbin/halt
mail	/sbin/nologin
uucp	/sbin/nologin
gg is fly!

  显示用户与对应的shell,用户与shell之间用Tab相隔,并在操作结束后输出字符串。
   其中BEGIN语句在开始文件操作前执行,END在文件操作后执行位于两者之间的才是真正的awk命令

shell脚本模式:

  将awk命令插入文件使awk程序可执行然后awk命令解释器作为脚本首行,一般通过键入脚本名称来调用。#!/bin/awk
#!/bin/awk
if [ 'chkconfig --list | awk '$1="xfs" {print $5}' ` = "3:on" ] ; then echo ok ; fi

打印处于开启状态的服务

awk编程:

        awk作为‘显示扫描和处理语言’,与其他语言相似,拥有变量的定义、条件语句、循环语句、以及数组。下面进行简单介绍(学习awk编程建议稍有点其他语言的编程基础)。

    变量定义:  

          cat /etc/passwd|awk 'BEGIN{count=0} {count++;print $0} END{print "user count is:",count}'  #统计账户总数

     awk中除了内置变量外还可以自定义变量  count即自定义变量

    条件语句:

   

          chkconfig --list |awk 'BEGIN {i=0} { if ($5=="3:on") i+=1 }' END {print iii}

      统计level5==3:on的服务有多少个, i=0 是定义变量

    循环语句:

     awk编程完整支持C语言循环语句

    数组:

    

          # cat /etc/passwd | awk -F ':' 'BEGIN{count=0} {name[count]=$1;count++;};END{for(i=0;i<NR;i++) print i ,name[i]}'
                  此处采用for循环遍历数组统计用户总数
    




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值