原始檔名為test.xt,檔案內容如下
sort a # 3|4
sort a # 2|5
sort b # 1|2
sort b # 2|5
分割後的檔案
file1
sort a # 3|4
sort a # 2|5
file2
sort b # 1|2
sort b # 2|5
這個其實很簡單,就是遍歷每一行的時候,在把該行的內容,輸出到第二列字元對應的檔案即可gawk -f' ' '' test.txt
,正確結果的內容就不做展示了。
此文的答案都是有問題的,答案中的語句awk '!a[$2]++' inputfile
在原檔案中a、b不是排序好出現的時候,結果就是錯誤的(當然,可以對原檔案按照第二列的內容排序後,再使用此語句也是可以得出正確結果的)。
例如,輸入檔案修改為如下
sort a # 3|4
sort b # 2|5
sort a # 1|2
sort b # 2|5
那麼對應的輸出為
file1
sort a # 3|4
file2
sort b # 2|5
sort a # 1|2
sort b # 2|5
gawk中字串的拼接,直接拼接即可,不能使用+號。
在使用+號的時候,是會出現異常的。在使用該命令的時候shell中陣列直接使用即可,不必賦初值。這個和許多程式語言都不相同gawk '' test.txt
,輸出的結果如下000
0
gawk ' end} ' test.txt
的結果如下a 2
b 2
做乙個知識型討飯的,有些閒錢的,覺得對你有用的可以捐點
將乙個整數劃分為多個正整數之和
整數劃分問題是將乙個正整數n拆分成一組數連加並等於n的形式,顯然這組數中最大加數不大於n。令n為需要劃分的整數,m為劃分後的最大整數。例如將6劃分為最大加數為6的劃分形式如下 5 1 4 2,4 1 1 3 3,3 2 1,3 1 1 1 2 2 2,2 2 1 1,2 1 1 1 1 1 1 1 ...
將乙個整數劃分為多個正整數之和
整數劃分問題是將乙個正整數n拆分成一組數連加並等於n的形式,顯然這組數中最大加數不大於n。令n為需要劃分的整數,m為劃分後的最大整數。例如將6劃分為最大加數為6的劃分形式如下 65 1 4 2,4 1 1 3 3,3 2 1,3 1 1 1 2 2 2,2 2 1 1,2 1 1 1 1 1 1 1...
將乙個陣列劃分為和差值最小的子陣列
思路 很容易知道如果選取的某個子陣列的和currentsum sum 2,則這兩個子陣列的和的差值最小,即從陣列中選取某些數字使得其和接近整個陣列的1 2.所以該命題本質上是乙個01揹包命題,原命題等價於從n各物品中選取若干個,其重量不超過sum 2,且重量達到最大 基於上述思路 如下 includ...