2012-06-12 10 views
15

Ho bisogno di ordinare un file flat dalla terza colonna lasciando intatta la prima colonna [La prima colonna è già ordinata] (in linux). (seconda colonna può cambiare)Ordina per terza colonna lasciando intatta la prima e la seconda colonna (in linux)

Esempio I file/p: -

b:di:wave 
b:di12:red 
b:di12:wave 
b:di06:pir 

dovrebbe essere simile: -

b:di06:pir 
b:di12:red 
b:di12:wave 
bast:di:wave 

Ho provato diverse opzioni di ordinamento, ma ho potuto sorta solo da seconda colonna ma non terzo.

Qualcuno può aiutare?

+0

Si prega di modificare la tua domanda; non mettere questo pasticcio illeggibile in un commento. –

risposta

37

Prova questo:

sort -t: -k1,1 -k3 data.txt 

dà:

bast:disp-san-d5-06:piranha 
bast:display-san-12:redbird 
bast:display-san-07:waverider 
bast:display-san-12:waverider 

Ciò ordinerà con il 1 ° campo chiave come primario, e il 3 ° campo come splitting chiave secondaria la linea in campi da :

Dettagli:

data.txt contiene le 4 righe del tuo post.

È possibile specificare più campi come chiavi di ordinamento, vedere la man page

-k1,1 significa sorta sul primo campo (inizio alle campo 1 e alla fine al campo 1, altrimenti sarebbe continuare a utilizzare il resto della linea per determinare il tipo)

-k3 significa ordinare sul 3 ° campo come chiave secondaria. Poiché non ci sono altri campi dietro di esso non è necessario specificare -k3,3 ma non farebbe male neanche a questo.

-t: mezzi delimitano i campi in linee con il carattere :, altrimenti vuoto viene utilizzato di default

ulteriori informazioni si veda questa domanda SO Sorting multiple keys with Unix sort e la sort man page

+0

Penso che questo interromperà l'ordinamento del primo campo. Hai ancora bisogno di ordinare il 1 °, poi il 3 ° campo, anche se l'input è già ordinato sul 1 ° campo – Pat

+0

@Pat penso che questo lo farà - grazie ancora per averlo capito .. con i dati dato il problema non era ovvio per me . – Levon

+1

ha funzionato perfettamente bene. Grazie per l'aiuto. – user1429246

Problemi correlati