awk調用函數

#!/usr/bin/awk -f


#例子程序,針對用戶名,從/et/passwd中來自動進行查找,並輸出相關的信息
#awk甚至可以直接定義全局變量
g_counter=0;


function finduser(name){
    posname=5;
    posdir=7;
    split($0, s, ":");
    for(i in s){
        #查找相同的用戶名
        #字符串判斷,使用match來進行匹配,數值直接使用==
        if(match(s[posname],name)){
            if(g_counter == 0)
                printf("用戶名稱:%s 行號:%d 用戶根目錄:%s\n", name, NR, s[posdir]);
            g_counter++;
            }
        }
    }


BEGIN{
    #因爲awk會自動解析腳本文件,所以輸入參數儘量是採用變量的形式來進行輸入
    #例如本腳本執行的時候以user作爲變量,則示例調用如下:
    #其他的變量也是同樣的使用方法
    #./13.awk user=root /etc/passwd


    print "打印輸入參數:"
    for(i in ARGV){
        print "i=",i,"argv=",ARGV[i];
        }
    }
    {
        finduser(user);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章