zoukankan      html  css  js  c++  java
  • linux命令 awk

    awk的工作流程如下:

    读入有 ' ' 换行符分割的一跳记录,然后将记录按指定的域分隔划分域,填充域,$0 表示所有域, $1 表示第一个域, $n 表示第n个域。默认域分隔符为“空白键”或者“[tab]键”。

    例如:

    hbg@root:/$ last -n 5

    yyy      pts/5        192.168.1.221    Mon Feb 29 16:07   still logged in  
    mmm   pts/4        192.168.2.201    Mon Feb 29 14:22   still logged in  
    zzz      pts/3        192.168.1.221    Mon Feb 29 14:00   still logged in  
    ttt       pts/2        192.168.2.201    Mon Feb 29 13:39   still logged in  
    mmm   pts/0        192.168.2.201    Mon Feb 29 13:38   still logged in 

    hbg@root:/$ last -n 5 | awk '{print $0}'
    yyy      pts/5        192.168.1.221    Mon Feb 29 16:07   still logged in  
    mmm   pts/4        192.168.2.201    Mon Feb 29 14:22   still logged in  
    zzz      pts/3        192.168.1.221    Mon Feb 29 14:00   still logged in  
    ttt       pts/2        192.168.2.201    Mon Feb 29 13:39   still logged in  
    mmm   pts/0        192.168.2.201    Mon Feb 29 13:38   still logged in 

    hbg@root:/$ last -n 5 | awk '{print $1}'
    yyy     
    mmm  
    zzz     
    ttt       
    mmm   

    hbg@root:/$ last -n 5 | awk '{print $2}'
    pts/5       

    pts/4       

    pts/3         
    pts/2       
    pts/0       

    -F 参数可以指定域分隔符“:”。

    hbg@root:/$ cat etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync

    hbg@root:/$ cat etc/passwd | awk -F ':' '{print $1}'
    root
    daemon
    bin
    sys
    sync

    关键字 BEGIN 先执行BEGIN,然后读取文件读入有 换行符分隔的一条记录,然后将记录按指定的域分隔符划分域,填充域。最后执行END。

    awk中提供了 print 和 printf两种打印输出函数。

    其中print函数的参数可以是变量、数值或者字符串。字符串必须使用双引号引用,参数用逗号分隔,如果没有逗号,参数就串联在一起而无法区分。这里逗号的作用与输出文件的分隔符的作用是一样的,只是后者是空格而已。

    printf函数,其用法和 C语言中printf基本相似,可以格式化字符串,输出复杂时,printf更好用,代码更容易懂。

  • 相关阅读:
    java.net.ConnectException: localhost/127.0.0.1:8088 Connection refused java程序员
    网络模式:GSM,WCDMA,CDMA2000什么意思 java程序员
    Spring contextConfigLocation java程序员
    src总结 java程序员
    广州天河软件园面试Java实习生时的一些面试题 java程序员
    纠结了好久的Android SDK无法更新问题 java程序员
    Android SDK 2.3/3.0/4.0/4.1 下载与安装教程 java程序员
    域名解析文件hosts文件是什么?如何修改hosts文件? java程序员
    安卓模拟器Android SDK 4.0.3 R2安装完整图文教程 java程序员
    SpringBoot+mongoDB实现id自增
  • 原文地址:https://www.cnblogs.com/rohens-hbg/p/5227915.html
Copyright © 2011-2022 走看看