devo questo file:Come ordinare i gruppi di linee insieme?
rs1 1 ADD 0.7 0.75 0.45
rs1 1 VAR 0.4 4.53 0.06
rs1 1 USER NA 1.96 0.37
rs2 2 ADD 1.5 0.25 0.23
rs2 2 VAR 0.4 4.86 0.03
rs2 2 USER NA 1.73 0.05
rs3 3 ADD 0.29 0.76 0.97
rs3 3 VAR 0.44 3.95 0.09
rs3 3 USER 0.96 5.41 0.01
Per ogni valore in $1
, ci sono tre linee con ADD
, VAR
, USER
in $3
. Voglio ordinare (in ordine inverso) il file basato sui valori $6
per le linee con USER
in $3
. La domanda è: come posso fare questo E allo stesso tempo mantenere le linee corrispondenti con ADD
, VAR
accanto alle righe ordinate. Non ho bisogno che le altre due linee siano ordinate; Ho solo bisogno che siano accanto alla linea sorted
.
output desiderato:
rs3 3 ADD 0.29 0.76 0.97
rs3 3 VAR 0.44 3.95 0.09
rs3 3 USER 0.96 5.41 0.01
rs2 2 ADD 1.5 0.25 0.23
rs2 2 VAR 0.4 4.86 0.03
rs2 2 USER NA 1.73 0.05
rs1 1 ADD 0.7 0.75 0.45
rs1 1 VAR 0.4 4.53 0.06
rs1 1 USER NA 1.96 0.37
Ho provato questo codice, ma solo le specie in base ai valori $6
in USER
linee:
cat File | sort -k1 | uniq | sort -g -k6 > Output
Grazie
+1 per domande ben formate con dati di esempio, output richiesto e ... gasp, .... codice di esempio; -). È possibile specificare più chiavi da ordinare. '-k2 -k3 -k6' potrebbe funzionare. In bocca al lupo. – shellter
Dai un'occhiata a questo esempio è sulla stessa linea credo http://stackoverflow.com/questions/3832068/bash-sort-text-file-by-last-field-value – TopGunCoder
@shelter: Sfortunatamente, non sembra funzionare – user2162153