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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 9271 | 回復: 12
打印 上一主題 下一主題

AWK NF和循環(huán)結(jié)構(gòu)的使用 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2007-12-14 16:29 |只看該作者 |倒序瀏覽
BEGIN {
    FS=","
    chg_str="IP,"
    if (length(des_ip) > 0){
            ipaddr=des_ip
    } else {
            ipaddr="10.10.5.44"
    }

}

{
    #print "NF => " NF
    #print "NF => " $NF

        if ( NR == 1) {
                printf "%s",chg_str
                print $0
        } else {
                printf "\"%s\",",ipaddr
                #print "NF => " NF
                for (i = 1; i <= NF; i++){
                printf "%s",$i
        }
                #print $0
                print "NR => " NR
        }

}

程序的目的是,數(shù)據(jù)文件中第一行首增加一個變量 IP
從第二行起,每行行首增加具體的IP地址值
運行結(jié)果,if ( NR == 1)  正常執(zhí)行了
else 部分沒有執(zhí)行.

如果我不用循環(huán)輸出每個域,而用$0輸出的話,一切正常,
用$i 輸出就沒有任何輸出結(jié)果,什么原因?
前面注釋掉的NF變量在第一行的時候,也確認字段數(shù)大于1
并且,數(shù)據(jù)文件是用 , 分割的帶 " 的數(shù)據(jù). 格式也正確.
怎么解釋此現(xiàn)象呢?
難道是循環(huán)用錯了?

論壇徽章:
23
15-16賽季CBA聯(lián)賽之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午馬
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16賽季CBA聯(lián)賽之山東
日期:2017-12-21 16:39:1915-16賽季CBA聯(lián)賽之廣東
日期:2016-01-19 13:33:372015亞冠之山東魯能
日期:2015-10-13 09:39:062015亞冠之西悉尼流浪者
日期:2015-09-21 08:27:57
2 [報告]
發(fā)表于 2007-12-14 16:35 |只看該作者
這個意思?
awk 'NR==1{print "IP,"$0}NR>1{print "10.10.5.44,"$0}'

論壇徽章:
0
3 [報告]
發(fā)表于 2007-12-14 16:46 |只看該作者
是的,基本上就是這個意思

不過,當NF>1的時候
我原來的數(shù)據(jù)也許沒有加 "
現(xiàn)在想加上,所以,就想沒個字段單獨處理,
問題就是,我用$0的話,它能正常輸出,
用循環(huán)輸出$i 的話,除了 $1 后面的就沒有結(jié)果輸出了.

論壇徽章:
23
15-16賽季CBA聯(lián)賽之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午馬
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16賽季CBA聯(lián)賽之山東
日期:2017-12-21 16:39:1915-16賽季CBA聯(lián)賽之廣東
日期:2016-01-19 13:33:372015亞冠之山東魯能
日期:2015-10-13 09:39:062015亞冠之西悉尼流浪者
日期:2015-09-21 08:27:57
4 [報告]
發(fā)表于 2007-12-14 16:50 |只看該作者
數(shù)據(jù)列幾條出來。

論壇徽章:
0
5 [報告]
發(fā)表于 2007-12-14 16:59 |只看該作者
看看你的數(shù)據(jù)文件。

論壇徽章:
0
6 [報告]
發(fā)表于 2007-12-14 17:03 |只看該作者
數(shù)據(jù)有點長,
我舉個例子:
轉(zhuǎn)換前CSV文件:
name,age,sex,dept
張三,28,m,銷售

轉(zhuǎn)換后想得到:
ip,name,age,sex,dept
"10.10.5.44","張三","28","m","銷售"

不用循環(huán)得出結(jié)果是正確的,
用了循環(huán)得到:
ip,name,age,sex,dept
"10.10.5.44",
后面就沒有了.因為數(shù)據(jù)中有漢字,不知道是不是有影響?

論壇徽章:
0
7 [報告]
發(fā)表于 2007-12-14 17:12 |只看該作者
補充:
我的數(shù)據(jù)是有"的

不過將來有些數(shù)據(jù)可能沒有", 所以想在這個處理中有"的話,原樣輸出,沒有"的話,能加"
數(shù)據(jù)分隔符是 ,

論壇徽章:
23
15-16賽季CBA聯(lián)賽之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午馬
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16賽季CBA聯(lián)賽之山東
日期:2017-12-21 16:39:1915-16賽季CBA聯(lián)賽之廣東
日期:2016-01-19 13:33:372015亞冠之山東魯能
日期:2015-10-13 09:39:062015亞冠之西悉尼流浪者
日期:2015-09-21 08:27:57
8 [報告]
發(fā)表于 2007-12-14 17:17 |只看該作者
awk -F, 'NR==1{print "ip,"$0}NR>1{printf "\"10.10.5.44\",";for(i=1;i<NF;i++) printf "\"%s\"," ,$i;print "\""$NF"\""}' urfile

論壇徽章:
0
9 [報告]
發(fā)表于 2007-12-14 17:18 |只看該作者
我這邊執(zhí)行是有輸出整行的。但有一點,你應(yīng)該把
printf "%s",$i
應(yīng)該改為:
printf "%s,",$i

不然就沒有分隔符了。

[ 本帖最后由 welcome008 于 2007-12-14 17:19 編輯 ]

論壇徽章:
23
15-16賽季CBA聯(lián)賽之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午馬
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16賽季CBA聯(lián)賽之山東
日期:2017-12-21 16:39:1915-16賽季CBA聯(lián)賽之廣東
日期:2016-01-19 13:33:372015亞冠之山東魯能
日期:2015-10-13 09:39:062015亞冠之西悉尼流浪者
日期:2015-09-21 08:27:57
10 [報告]
發(fā)表于 2007-12-14 17:26 |只看該作者
  1. awk 'BEGIN{FS=OFS=","}NR==1{print "ip,"$0}NR>1{gsub(/"/,"");for(i=1;i<=NF;i++)$i="\""$i"\"";print "\"10.10.5.44\","$0}' urfile
復制代碼
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP