GNU/Linux >> Linux Esercitazione >  >> Linux

Come lasciare `ordinare | Uniq -c` Separa il numero di occorrenze con un carattere di tabulazione?

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

Linux
  1. Come trovare il numero di linee verticali disponibili nel terminal?

  2. Come reindirizzare l'elenco dei comandi visualizzati da "scheda completa"?

  3. Come contare il numero di righe in un file dopo una corrispondenza Grep?

  4. Come determinare il numero della settimana del mese

  5. Come contare il numero di byte in un file, raggruppando gli stessi byte?

Come utilizzare il comando Bash let {con esempi}

Come contare le occorrenze di parole in un file di testo

Come trovare il numero di porta di un servizio in Linux

Come utilizzare il comando uniq per elaborare gli elenchi in Linux

Come ottenere il numero di processori/core in Linux

Come cancellare il numero di riga in Vim durante la copia?