Ho un file come questo:
FirstName, FamilyName, Address, PhoneNumber
Come posso ordinarlo per FamilyName?
Ho un file come questo:
FirstName, FamilyName, Address, PhoneNumber
Come posso ordinarlo per FamilyName?
Risposte:
Se questo è UNIX:
sort -k 2 file.txt
Puoi usare più -k
flag per ordinare su più di una colonna. Ad esempio, per ordinare in base al cognome e poi al nome come spareggio:
sort -k 2,2 -k 1,1 file.txt
Opzioni pertinenti da "man sort":
-k, --key = POS1 [, POS2]
avvia una chiave in POS1, terminala in POS2 (origine 1)
POS è F [.C] [OPTS], dove F è il numero del campo e C la posizione del carattere nel campo. OPTS è una o più opzioni di ordinamento di una sola lettera, che sovrascrivono le opzioni di ordinamento globali per quella chiave. Se non viene fornita alcuna chiave, utilizzare l'intera riga come chiave.
-t, --field-separator = SEP
utilizzare SEP invece della transizione da non vuoto a vuoto
--field-separator=','
se potresti avere un operatore di immissione dati che digita i valori per "Nome" come "Billy Bob" o qualsiasi altra cosa ... gli spazi possono facilmente entrare nei tuoi dati se non ti difendi, ma le virgole sono relativamente improbabili.
-b
opzione. Questo perché sort
sta effettivamente considerando che la stringa da ordinare inizia subito dopo la virgola e non dalla prima lettera della colonna. Inoltre, potrebbe essere necessario anteporre al comando LC_ALL=C
, per evitare qualsiasi effetto collaterale dovuto alle impostazioni locali, che può verificarsi anche su un semplice file ASCII.
-b
( --ignore-leading-blanks
). Per chiarire un po ': echo -e 'aa<SPACE>a\na<SPACE><SPACE>b' | sort -k2
dà il a<SPACE><SPACE>b
primo (la seconda colonna inizia dopo la prima non-blank to blank transition
ed <SPACE><SPACE>b
è prima <SPACE>a
), ma con -b
esso dà aa<SPACE>a
come previsto ( a
è prima b
).
FWIW, ecco un metodo di ordinamento per mostrare quali processi stanno utilizzando la maggior parte della memoria virt.
memstat | sort -k 1 -t':' -g -r | less
Le opzioni di ordinamento vengono impostate sulla prima colonna, utilizzando: come separatore di colonne, ordinamento numerico e ordinamento al contrario.
sort -nk2 file.txt
Di conseguenza è possibile modificare il numero di colonna.