linux命令怎樣統計文字檔案中的記錄數?是小魚啊啊啊啊啊2019-05-20 22:19:25

給定一個數據檔案,格式如下:

121 1,2,3

213321 2,3,4,5

23412414 5,6,7,7

2987429 2,4,5

……

現在的需求是這樣的,我要統計下第二個欄位中有多少個不同的值,這個要怎麼統計呢?

按照正常邏輯,應該是獲取到檔案的第二列,然後對第二列進行切分,排序,統計即可實現我們的目標。但說起來容易做起來難 啊。

在實現這個功能時,主要用到如下命令:

cat

awk

sort

uniq

wc

3

看看具體要怎麼寫這個資料分析統計的程式碼吧:

cat xxxx |awk ‘{

split($2,myarr,“,”)

for (i in myarr){

print myarr[i]

}

}’|sort|uniq -c|wc -l

注意,cat是讀取檔名為xxxx的檔案,然後透過管線命令傳遞給awk命令,然後透過split函式對檔案的第二個欄位按照“,”進行切分,並把產生的結果賦值給myarr的陣列,然後透過for迴圈呼叫print函式輸出陣列中的資料;再把輸出的結果傳遞給sort進行排序,然後透過uniq -c進行唯一性統計;最後把上一步的結果透過管線命令傳遞給wc -l命令統計出一共有多少行記錄即可獲取到文字檔案第二個欄位有多少不同的值了。