awk学习及实例

1.awk功能介绍

awk是基于指定规则从文本文件和字符串中抽取和浏览信息。比如用户登录日志中筛选特定用户日志记录做统计或者查看。

2.awk调用方式

(1)命令行方式:awk  [-F 域分隔符]    'awk程序段'   输入文件

  例子:awk  -F :  '{printf $0} '  /etc/passwd    

(2)awk命令放入脚本文件(脚本第一行:#!/bin/awk -f),然后通过awk调用脚本文件。

  调用形式:awk   -f  awk脚本文件    输入文件

(3)awk命令放入脚本文件(脚本第一行:#!/bin/awk -f),设置该脚本文件为可执行文件。

  调用形式:./awk脚本文件   输入文件

3.awk脚本

(1)域和记录

  域:awk输入内容按照分隔符划分的各部分,比如$1表示第1域、$7表示第7域、$0表示所有记录(包括域内容和分隔符)。

  记录:awk输入内容的一行内容。

(2)模式和动作

  awk脚本由模式和动作组成,模式部分是决定动作语句何时触发,动作部分是对数据进行的操作。

例子中 BEGIN{..}和END{...}属于模式部分。BEGIN部分是awk读取输入文件记录之前执行,一般用来初始化计数变量和打印表头;END部分是awk读取输入文件内容之后执行,一般用作输出统计数值和输出格式化内容的结束标志;另外模式可以是任何条件语句或复合语句或正则表达式。

中间{...}里是动作部分,用来打印符合模式的内容。print是内容输出函数。

(3)awk输出内容保存方式:重定向到文件和tee命令

  比如awk处理的passwd.bak文件的内容保存到result.txt文件中

  重定向到文件方式:awk '{print $0}'  passwd.bak > result.txt 

  tee命令方式: awk '{print $0}' passwd.bak | tee result.txt

  注意:<1>重定向到文件方式输出数据不再打印到屏幕,tee命令则会打印到屏幕

             <2>重定向方式注意“>”和“>>”的区别,“>”会覆盖文件里面的原内容,“>>”则是在文件里面              追加内容。

(4)awk输入方式: 

      <1> awk-script  input-file

      <2>awk-script-file < input-file

      <3>input-file | awk-script-file

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值