awk 案例

1 awk命令总结
  语法: awk [-F 分隔符 ] '命令' 文件名


 
  awk内置变量
  ARGC               命令行参数个数
ARGV               命令行参数排列
ENVIRON            支持队列中系统环境变量的使用
FILENAME           awk浏览的文件名
FNR                浏览文件的记录数
FS                 设置输入域分隔符,等价于命令行 -F选项
NF                 浏览记录的域的个数
NR                 已读的记录数
OFS                输出域分隔符
ORS                输出记录分隔符
RS                 控制记录分隔符




  案例1:获取第一列
  #last -n 5 | awk  '{print $1}'
root
root
root
dmtsai
root






  案例2:指定分隔符
    单个分隔符
# awk -F ':' '{print $1}' /etc/passwd
root
bin
daemon
adm


    多个分隔符,如获取ip地址, 指定空格和:,选择包含inet addr 的行并取13列
    # ifconfig eth0|awk -F '[ :]' '/inet addr/{print $13}'


    指定列
    # ifconfig eth0 |awk -F '[ :]+' 'NR==2{print $4}'
10.0.0.11




   案例3:如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。


   # awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}' /etc/passwd




   案例4:搜索/etc/passwd有root关键字的所有行
   # awk -F ':' '/root/' /etc/passwd




   案例5:显示/etc/passwd的账户
awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd
0 root
1 daemon
2 bin
3 sys
4 sync

5 games


参考地址:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值