好吧,我希望這不是一個愚蠢的問題,但我並尋找令人沮喪的硬的答案已經沒有什麼幫助,......我有以下awk
表達式,我的工作:我可以在AWK中的區間表達式內的表達式中使用NR嗎?
awk '{str="";a=0;while (a++<15) str=str "0,";{ sub(/^.{6}/,"&" "1,",str) }; print str}' sample.txt
樣品.txt可以是任何文本文件,在這一點上它並不重要,因爲它只是驅動重複(這是希望達到目的的一種手段)。輸出看起來是這樣的(當然這取決於有多少行是在Sample.txt的文件):
0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,
我真正想要的不過做的是這樣的:
awk '{str="";a=0;while (a++<15) str=str "0,";{ sub(/^.{2*NR-1}/,"&" "1,",str) }; print str}' sample.txt
哪應該產生這樣的輸出:
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,
這可能嗎?我已經嘗試了一切,以獲得Awk
拿起2*NR-1
但似乎沒有工作,...我做錯了什麼?
特里
有人可以糾正我,如果我錯了,但我從來沒有管理使用可變的時間間隔內表現。另外,要使用區間表達式,您必須設置'awk'的'-r'標誌。請參閱[man](http://www.gnu.org/software/gawk/manual/gawk.html)頁面。 – Steve
其實我的第一個awk語句確實有效,......不知道爲什麼它沒有-r標誌,...無論如何謝謝回覆! :) – Terry