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

  免費注冊 查看新帖 |

Chinaunix

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

[文本處理] awk for 基礎(chǔ)問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-11-13 09:12 |只看該作者 |倒序瀏覽
本帖最后由 wang390750 于 2013-11-13 09:18 編輯

昨晚看書,書上有一個列子這樣的:
  1. awk '{name[x++]=$2};END{for(i=0;i<NR;i++) print i,name[i]}' 1
復(fù)制代碼
想不通后面的
  1. name[i]
復(fù)制代碼
是怎么回事,求大神耐心解答,別嫌我的問題低級啊。

論壇徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16賽季CBA聯(lián)賽之北京
日期:2016-07-06 15:42:0715-16賽季CBA聯(lián)賽之同曦
日期:2016-06-12 10:38:0915-16賽季CBA聯(lián)賽之佛山
日期:2016-05-27 11:54:56黃金圣斗士
日期:2015-12-02 11:44:35白銀圣斗士
日期:2015-11-25 14:32:43白銀圣斗士
日期:2015-11-23 12:53:352015亞冠之布里斯班獅吼
日期:2015-10-21 16:55:482015亞冠之首爾
日期:2015-09-01 16:46:052015亞冠之德黑蘭石油
日期:2015-08-31 11:39:192015亞冠之薩濟拖拉機
日期:2015-08-28 21:06:5315-16賽季CBA聯(lián)賽之廣東
日期:2016-07-12 14:58:53
2 [報告]
發(fā)表于 2013-11-13 09:44 |只看該作者
i 是 下表,name[i] 就的對應(yīng)的這個下標(biāo)的值啊。比如:

name[1]=a
name[2]=b

for(i in name)print i,name[i] // 這里i就是這個name數(shù)組的下標(biāo)1,而name[i]就是對應(yīng)的值a ,完了之后繼續(xù)下次循環(huán),則是i對應(yīng)2,name[i]對應(yīng)b, do you understand ?

論壇徽章:
0
3 [報告]
發(fā)表于 2013-11-13 09:45 |只看該作者
回復(fù) 1# wang390750

就一數(shù)組,對應(yīng)用 name[x++]=$2  的值

name[0]=$2
name[1]=$2
。。。。。。
   

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
4 [報告]
發(fā)表于 2013-11-13 09:54 |只看該作者

論壇徽章:
0
5 [報告]
發(fā)表于 2013-11-13 09:55 |只看該作者
本帖最后由 wang390750 于 2013-11-13 10:00 編輯

回復(fù) 2# reyleon
  1.     awk '{name[x++]=$2};END{for(i=0;i<NR;i++) print i,name[i]}' 1
復(fù)制代碼
name[x++]    下標(biāo)是x啊,   后面加了一句for(i=0;i<NR;i++)  最后就能打印
  1. name[i]
復(fù)制代碼
。  
我不明白他們是怎么關(guān)聯(lián)上的。。。。

論壇徽章:
0
6 [報告]
發(fā)表于 2013-11-13 10:19 |只看該作者
本帖最后由 wang390750 于 2013-11-13 10:20 編輯

回復(fù) 3# yaozhibing41001


    不知道我這樣能解是否正確啊。
   name[x++]=$2  這兒下標(biāo)是x   值是$2
   x++ 第一次為1  第二次為2
  
   for(i=0;i<NR;i++)
   i++ 的值為1  逐漸增加
  然后 x   ==   i
  1.   所以打印  name [i]    就等于打印 name [x]的值  $2
復(fù)制代碼

論壇徽章:
15
2015年辭舊歲徽章
日期:2015-03-03 16:54:15雙魚座
日期:2015-01-15 17:29:44午馬
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉雞
日期:2014-04-02 12:24:51雙子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥豬
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大;照
日期:2013-04-17 11:48:45
7 [報告]
發(fā)表于 2013-11-13 10:35 |只看該作者
本帖最后由 rdcwayx 于 2013-11-13 10:37 編輯

其實這題里,x++有些問題,用++x 可能更好。x 在沒有賦值前,并不一定為 0 的,當(dāng)然后面的代碼也要跟著調(diào)整。  

x 的值作為下標(biāo)給關(guān)聯(lián)數(shù)組 name , 調(diào)用或者賦值時,是沒有這個name[x] 數(shù)組的。 系統(tǒng)里存放著是 name[1], name[2].

而且按照題意, 沒必要再引入個變量x, NR或者FNR已經(jīng)滿足條件了:
  1. awk '{name[NR]=$2}END{for(i=1;i<=NR;i++) print i,name[i]}' 1
復(fù)制代碼

論壇徽章:
0
8 [報告]
發(fā)表于 2013-11-13 10:44 |只看該作者
回復(fù) 7# rdcwayx


    謝謝版本,似乎已經(jīng)已經(jīng)明白了。

論壇徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16賽季CBA聯(lián)賽之北京
日期:2016-07-06 15:42:0715-16賽季CBA聯(lián)賽之同曦
日期:2016-06-12 10:38:0915-16賽季CBA聯(lián)賽之佛山
日期:2016-05-27 11:54:56黃金圣斗士
日期:2015-12-02 11:44:35白銀圣斗士
日期:2015-11-25 14:32:43白銀圣斗士
日期:2015-11-23 12:53:352015亞冠之布里斯班獅吼
日期:2015-10-21 16:55:482015亞冠之首爾
日期:2015-09-01 16:46:052015亞冠之德黑蘭石油
日期:2015-08-31 11:39:192015亞冠之薩濟拖拉機
日期:2015-08-28 21:06:5315-16賽季CBA聯(lián)賽之廣東
日期:2016-07-12 14:58:53
9 [報告]
發(fā)表于 2013-11-13 10:44 |只看該作者
name[x++]=$2

你理解了x++就明白了,先賦值,再自增。

讀取第一行的時候,NR=1,x++,是先賦值,根據(jù)上下文確定x=0,則name[0]=$2,然后x++,x被賦值了,即x=1;結(jié)束第一行的處理,下標(biāo)0對應(yīng)文本的第一行,即對應(yīng)NR=1
讀取第二行的時候,NR=2,從上面可知,x=1,所以name[1]=$2,然后x++,自增1,所以x=2了,結(jié)束第二行的處理,繼續(xù)。下標(biāo)1對應(yīng)文本的第一行,即對應(yīng)NR=2
讀取第三行的時候,NR=3,從上面可知,x=2,所以name[2]=$2,然后,然后你就懂了...

當(dāng)讀取玩所有行的之后就執(zhí)行END后的代碼。

for(i=0;i<NR;i++)從0開始,so....


其實或許對你這樣更容易理解:
  1. awk '{name[NR]=$2};END{for(i=1;i<=NR;i++) print i,name[i]}' 1
復(fù)制代碼

論壇徽章:
0
10 [報告]
發(fā)表于 2013-11-13 10:48 |只看該作者
回復(fù) 9# reyleon


    感謝大神,明白了。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(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