2015-05-08 61 views
0

什麼是這個下面的代碼段,這是我認爲適當AWK語法是GAWK:a[x][0]+=$2

+0

這是什麼代碼在做什麼?它的運行環境是什麼? –

+0

與論壇網站不同,我們不使用「謝謝」,或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be 。-removed - 從 - 個) –

回答

1

在一個層面上 - 沒有等效這就是爲什麼編寫gawk代碼來支持它的原因。

無論您是否真的需要該語法附帶的所有功能,都取決於您之後將如何處理數組,並且如果您對該數組做的不多,那麼所需的實現可能會很簡單:

a[x,0]+=$2 

,但它也可能是這樣的:

a[x,0]+=$2; b[x]=(x in b?b[x] SUBSEP:"") 0 

,如果你需要做的相當於:

split("1 3 5 7",a[x]); ... ; a[x][0]+=$2 

然後你有一些頭撓撓。

+0

的代碼在這裏找到提供給我的其他問題一個答案使用:http://stackoverflow.com/questions/29525839/sorting-uniq-strings-creatings-columns-and-平均 第一個建議一[X,0] + = $ 16似乎解決了語法錯誤的問題。 – Nolohice

+0

即答案是做附加的特定的gawk-之類的東西使用'L =長度([X])',以獲得長度的數組,並且它正在做一些awk-ish不太好的事情(打印出來的parens,使用字符串連接來創建格式化字符串,測試具有零值而不是缺少索引的數組等),所以它讓我想到如果海報真的提出了最好的awk解決方案,你不應該接受它並關閉如果它沒有做你想做的事情,那麼別人可能會看到它並提供其他答案。 –