亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請教如何判斷已經(jīng)到文件尾部 [打印本頁]

作者: dl318    時間: 2010-04-24 20:46
標(biāo)題: 請教如何判斷已經(jīng)到文件尾部
下面的語句需要判斷是否已經(jīng)到文件尾,請問應(yīng)該怎么增加?我試著在while中增加 將while修改為
while ($1 != "listen" && getline != 0 ) 好像也不好用。

while ($1 != "listen" )   
        {
            print;
            getline;
        }
作者: blackold    時間: 2010-04-24 20:49
回復(fù) 1# dl318


    這是什么語句?awk?
作者: dl318    時間: 2010-04-24 20:54
對,awk的。現(xiàn)在如果listen是最后一個域,就會是死循環(huán),需要增加一個判斷,判斷是否到文件的尾部。
cat $FILE |awk -v listen_name=$1 -v listen_ip=$23 '{
    if ($1 == "listen" && $2 == listen_name && $3 == listen_ip)
    {
        print;
        getline;
        while ($1 != "listen" )
        {
            print;
            getline;
        }
        exit;
    }
}' >> $TMP_FILE
作者: blackold    時間: 2010-04-24 21:03
回復(fù) 3# dl318


    你想做什么?對最后一行處理?
作者: dl318    時間: 2010-04-24 21:19
只是將記錄取出來放到一個臨時文件中。類似下面的記錄在文件的最后,如果不判斷是否已經(jīng)到文件尾,那么就一直取文件寫臨時文件,死循環(huán)了。
listen test 192.168.0.1  8091
    ..........
   ..........
    ...........
作者: blackold    時間: 2010-04-24 21:25
取完了就結(jié)束了,還會死循環(huán)?

你上面的是awk腳本還是在命令行上直接執(zhí)行?
作者: dl318    時間: 2010-04-24 21:29
我是在shell中執(zhí)行的。
樓上的有QQ號嗎?我的QQ63579028
作者: blackold    時間: 2010-04-24 21:49
回復(fù) 7# dl318


    樓上的學(xué)過禮儀沒有?
作者: blackold    時間: 2010-04-24 21:58
回復(fù) 7# dl318


    如果在命令行上運行,cat $FILE |awk -v listen_name=$1 -v listen_ip=$23 中的$1 $2 $3 $FILE的值是什么?
作者: dl318    時間: 2010-04-24 22:02
$FILE   :
listen  test  192.168.0.1:8080
        balance roundrobin                                            
        option  forwardfor                                                
        option  ssl-hello-chk                                          
                                                
        server  web1 192.168.10.10:9090 weight 1 maxconn 5000 CHECK
$1 :test $2:192.168.0.1 $3 : 8080
作者: blackold    時間: 2010-04-24 22:08
回復(fù) 10# dl318


    看你的貼子很痛苦,看不懂。

    你是說你在執(zhí)行命令之前,預(yù)先設(shè)置了變量$1 $2 ...?
作者: Shell_HAT    時間: 2010-04-24 22:16
原始文件的內(nèi)容是什么?awk處理之后希望的結(jié)果是什么?
作者: dl318    時間: 2010-04-24 22:24
原文件內(nèi)容如下,希望通過輸入 名稱(test、test2......) IP(192.168.0.10 ...) port(8888....) 在下面的文件中找到對應(yīng)的,然后輸出到一個文件中。
比如 ./a.sh test2 192.168.0.9 8080  希望輸出的文件是 listen  test2 192.168.0.9:8080那一段。
a.sh內(nèi)容:(如果listen這個域在文件的最后,現(xiàn)在輸出的文件就是死循環(huán),一直取最后一行)
cat ./test.txt |awk -v listen_name=$1 -v listen_ip=$tmp '{
    if ($1 == "listen" && $2 == listen_name && $3 == listen_ip)
    {
        print;
        getline;
        while ($1 != "listen"  )  
        {
            print;
            getline;
        }
        exit;
    }
}' >>./tmp.cfg

原文件內(nèi)容:
listen test 192.168.0.10:8888
        balance roundrobin
        option forwardfor
#       option ssl-hello-chk

        server web1 192.168.0.100:8091 weight 1 maxconn 5000 check
        server web1 192.168.0.101:8091 weight 1 maxconn 5000 check
                                             
listen  test2 192.168.0.9:8080
        balance roundrobin                                            
        option  forwardfor                                                
        option  ssl-hello-chk                                          
                                                
        server  web1 192.168.0.150:9090 weight 1 maxconn 5000 CHECK
作者: vitas333_cu    時間: 2010-04-24 23:16
感覺好麻煩啊!!!!!!!!!!!!!!  


去掉 循環(huán)...   以后少用循環(huán),,  能用數(shù)組 函數(shù) 就是最好的效率... 循環(huán) 盡量少用!!!

  要用也用優(yōu)化過的....

看了頭大...  

把 結(jié)果說出來, 以及 你自己的實現(xiàn) 方法 ,  看你的 代碼 會吐血...




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2