欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

awk相关整理 博客分类: Ubuntu awk ubuntu 

程序员文章站 2024-02-03 13:42:22
...

总结一下,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 变量表示每个字符串之间打印的间隔符号.

 

 

 

 

相关标签: awk ubuntu