awk '! a[$0]++' file
這是乙個非常經典的去重複項的awk語句,雖然短小,不過涉及到了不少知識點,下面一一解讀:
<1> :」!」 即非。
<2>:a[$0],以$0為資料下標,建立陣列a
<3>:a[$0]++,即給陣列a賦值,a[$0]+=1
<4> :那麼組合起來,awk是怎麼執行!a[$0]++的呢?我用乙個實際例子來解釋:
cat file
111222
111222
333awk '' file
1 1 0 111
1 1 0 222
1 0 2 0 111
1 0 2 0 222
1 1 0 333
複製**
原來,第乙個a[$0]的值為空,所以!a[$0]++是先作判斷,結果為1(非空為真,即為1),再作陣列賦值a[$0]++。這也就是為什麼前面的!a[$0]++並不一定等於後面的!a[$0]。
awk 『++a[$0]==1』 和上面的**作用一樣,你理解了麼?
重複的單詞題目
此處認為單詞之間以空格為分隔符 1.使用者輸入一句英文句子 2.列印出每個單詞及其重複的次數。使用者輸入一句英文句子 sentence input 請輸入一句英文句子 split sentence sentence.split print split sentence 列印出每個單詞 print l...
awk統計重複列
awk是什麼?awk是乙個優良的文字處理工具,linux及unix環境中現有的功能最強大的資料處理引擎之一。這種程式設計及資料操作語言 其名稱得自于它的創始人阿爾佛雷德 艾侯 彼得 溫伯格和布萊恩 柯林漢姓氏的首個字母 的最大功能取決於乙個人所擁有的知識。awk經過改進生成的新的版本nawk,gaw...
重複字元過濾
題目描述 60分 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串過濾程式,若字串中出現多個相同的字元,將非首次出現的字元過濾掉。比如字串 abacacde 過濾結果為 abcde 要求實現函式 voidstringfilter const char pinputstr,long lin...