2015-05-13 24 views
0

假設我們有這個文本文件:在awk/Unix用戶組由以

Daisy ABC0002 1 
Kevin ABC0001 2 
Mike ABC0001 3 
John ABC0003 4 
Pete ABC0002 5 

我們試圖得到這樣一個結果:

Kevin ABC0001 2 
Mike ABC0001 3 
Daisy ABC0002 1 
Pete ABC0002 5 
John ABC0003 4 

有名字之間沒有訂單,但最後一欄應在根據ABC000#標籤分組行時應予以考慮。任何建議?謝謝。

+6

'sort -k2,2 -k3,3 text.file'? –

+1

@JonathanLeffler是正確的,但你可能想在最後一個'3'後加一個'n'來確保數字順序,以防數字可能大於9。 –

回答

3

對於所示的數據,你可以簡單地使用:

sort -k2,2 -k3,3 

如果有可能永遠不會在第三列多位數,指定數字排序:

sort -k2,2 -k3,3n 
sort -k2,2 -k3n,3 

例如,給定輸入文件:

Daisy ABC0002 1 
Kevin ABC0001 2 
Mike ABC0001 3 
John ABC0003 4 
Pete ABC0002 5 
Hazel ABC0002 34 
Sarah ABC0002 24 
Alice ABC0002 11 
Zoe ABC0002 9 

在列數字排序3

在列
Kevin ABC0001 2 
Mike ABC0001 3 
Daisy ABC0002 1 
Pete ABC0002 5 
Zoe ABC0002 9 
Alice ABC0002 11 
Sarah ABC0002 24 
Hazel ABC0002 34 
John ABC0003 4 

非數字排序3

Kevin ABC0001 2 
Mike ABC0001 3 
Daisy ABC0002 1 
Alice ABC0002 11 
Sarah ABC0002 24 
Hazel ABC0002 34 
Pete ABC0002 5 
Zoe ABC0002 9 
John ABC0003 4 

記下Zoe和皮特出現在兩個輸出。