Linux下文本分析工具awk的简单使用

AWK简介


   awk是一个强大的文本分析工具,awk可以把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。


AWK的使用

      awk [-F  field-separator]  'commands'  input-file(s)
     其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。
     在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格或tab键。
    awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键"

AWK使用举例

  (1)使用awk来抽取文本文件中的信息

   #echo "test:hello:next" >test.txt
   #echo "tang:yi:bo" >>test.txt
   #awk -F ":" '{print $1}' test.txt
   test
   tang
   便可以抽取到test.txt文件中:分割的第1列内容。

  (2)使用awk来抽取shell命令结果中的信息

   这里使用last命令可以查看系统最近的登录信息。

  #last -n 5          //显示最近5次的登录信息
  tang     pts/0        192.168.1.105    Sat Nov 14 23:50   still logged in   
  tang     pts/0        192.168.1.105    Sat Nov 14 22:56 - 23:50  (00:53)    
  root     tty1                          Sat Nov 14 22:55   still logged in   
  reboot   system boot  2.6.32-504.el6.x Sat Nov 14 22:53 - 00:44  (01:50)    
  root     tty1                          Fri Aug 14 06:38 - down   (00:00) 
  使用awk抽取其中的第2列用户名
  #last -n 5 | awk '{print $2}' 
   pts/0
   pts/0
   tty1
   system
   tty1
  如果是抽取其中的第1和第2列,且用tab键分割,则
  #last -n 5 | awk '{print $1"\t"$2}' 
  tang  pts/0
  tang  pts/0
  root  tty1
  reboot  system
  root  tty1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值