2013-12-11 51 views
1

假設一個文件有以下行:在一個文件中的唯一行發生次數

aa bbb cccc dddd 
eee ffff ggggg 
aa bbb cccc dddd 
i jj kkk llll 
aa bbb cccc dddd 
eee ffff ggggg 

是否有任何bash命令,以確定發生了多少次唯一行的文件嗎?輸出應該是:

aa bbb cccc dddd 3 time 
eee ffff ggggg 2 times 
i jj kkk llll 1 time 

回答

2

您可以將幾個命令:

sort <inputfile | uniq -c 

的手冊頁uniq打頭:

NAME 
     uniq - report or omit repeated lines 

SYNOPSIS 
     uniq [OPTION]... [INPUT [OUTPUT]] 

DESCRIPTION 
     Discard all but one of successive identical lines from INPUT 
     (or standard input), writing to OUTPUT (or standard output). 

     -c, --count 
       prefix lines by the number of occurrences 

所以輸出作爲給定的輸入文件是:

3 aa bbb cccc dddd 
    2 eee ffff ggggg 
    1 i jj kkk llll 
+0

它是possi可以將出現次數作爲後綴,而不是以逗號作爲前綴嗎? – Reza

+0

是的。 'uniq'命令本身不會這樣做,但是你可以使用'sed'或'awk'這樣的命令輕鬆完成。 –

相關問題