Salve, ho il seguente problema, che non credo sia banalissimo... Penso che sia risolvibile in bash, e quindi lo posto in Linux, visto che è frequentato da gente che ha una certa confidenza con la riga di comando.
Ho un file di testo di questo tipo:
Quindi ho un numero variabile di righe per ciascun oggetto (gli oggetti nell'esempio sono 1a7, 1ad, 1f3, 4ot) e ciascuna riga ha una etichetta + o -1, il nome dell'oggetto e poi un valore numerico decimale...1 1a7 0.935101
1 1a7 0.987847
-1 1a7 0.992194
-1 1a7 0.045534
-1 1a7 0.000561
1 1a7 0.014129
1 1ad 0.794279
1 1ad 0.554256
.
.
.
1 1f3 0.5855366
1 1f3 0.7155366
-1 1f3 0.0734625
-1 4ot 0.0111216
-1 4ot 0.0624855
Quello che a me serve è riordinare per ciascun oggetto le righe in ordine decrescente del valore decimale. Quindi riordinare prima tutte le righe con 1a7 per ordine decrescente del valore numerico, poi tutte quello di 1ad, e così via per tutti gli oggetti.
Successivamente dovrei estrarre una riga per ciascun oggetto, corrispondente al 2° valore più grande tra le righe dell'oggetto...1 1a7 0.992194
1 1a7 0.987847
1 1a7 0.935101
-1 1a7 0.045534
1 1a7 0.014129
-1 1a7 0.000561
1 1ad 0.794279
1 1ad 0.554256
.
.
.
1 1f3 0.7155366
1 1f3 0.5855366
-1 1f3 0.0734625
-1 4ot 0.0624855
-1 4ot 0.0111216
Un po' un casino... Non so se per ottenere ciò che voglio devo necessariamente creare n file per gli n oggetti, visto che non so come si potrebbe imporre l'ordinamento alfabetico sugli oggetti e all'interno di questo ordinamento un secondo ordinamento decrescente sul valore numerico...1 1a7 0.987847
1 1ad 0.554256
.
.
.
1 1f3 0.5855366
-1 4ot 0.0111216
Qualche dritta?
Grazie.