uniq -c
separa il numero di occorrenza da spazi, cosa difficile per cut
o awk
per separarlo in seguito.
1000_A1\tB1\n
___1_A2\tB2\n
Posso risolvere questo problema usando sed -r 's/^ *([0-9]+)/\1\t/'
per cambiare il delimitatore in tab. Quindi cut -f1
potrebbe tornare:
1000\tA1\tB1\n
1\tA2\tB2\n
Ma sembra un uso comune avere uniq -c
separare il numero per tab. Perché manca questa funzione? C'è un altro modo più semplice per farlo?
Risposta accettata:
Sembra che tu abbia un formato come <number><space><field 1 name><tab><field 2 name>
e vuoi controllare che l'input sia ordinato per field 1 name
. Se è quello che vuoi, rimuovi semplicemente la parte iniziale del numero e controlla l'ordinamento della parte rimanente della prima colonna:
echo "$input" | sed -r 's/^ *[^ ]+ //' | sort -c -k1,1