awk相关整理

总结一下,awk的相关功能:

  awk '{print $0}'

 在 Awk 中,变量 $0 表示整个当前行,因此 printprint $0 的作用完全相同

 

awk -F":" '{print $1 " " $3}' /etc/passwd

  -F : 参数指定行的内容用的分隔符,如上,使用的是 : 号做的分割处理

 

  比如:

 

awk -F":" '{print "username:" $1  "\t\tuid:" $3}' /etc/passwd
 
显示为:

 

username:root		uid:0
username:daemon		uid:1
username:bin		uid:2
username:sys		uid:3
username:sync		uid:4
username:games		uid:5

 

 BEGIN和END

     awk允许在执行文本文件之前,执行相应的初始化代码,同样,awk 也支持在文件处理完成以后执行相应的代码,这个可以用定义END专用代码块来做到(通常情况下,END 块用于进行最终计算或打印应该在输出流结尾处出现的汇总信息)。

 

  正则表达式的查找

     比如,需要查找包含有 "hp"这个词的行;

 

awk '/hp/ {print}' /etc/passwd
 

     显示的结果为:

hplip:x:112:7:HPLIP system user,,,:/var/run/hplip:/bin/false

 

   表达式代码块

     寻找以":"分隔,第一列为"ivanzhangwb"的行:

    

awk -F":" '$1 =="ivanzhangwb" {print}' /etc/passwd
     

     结果显示为:

 

ivanzhangwb@ivanzhangwb-notebook:~$ awk -F":" '$1 =="ivanzhangwb" {print}' /etc/passwd

ivanzhangwb:x:1000:1000:ivanzhangwb,,,:/home/ivanzhangwb:/bin/bash
 

 

   
 条件语句
   
awk -F":" '{if($1=="ivanzhangwb"){print}}' /etc/passwd
     
 特殊变量
   NF: 字段数量
    打印出每行的字段数量为多少.
 
 awk '{print NF}' /etc/passwd
 
 RS变量 和 OPS 变量.  
  RS 变量告诉 awk 当前记录什么时候结束,新记录什么时候开始。
  OFS 变量表示每个字符串之间打印的间隔符号.

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值