uniq -c
odděluje číslo výskytu mezerami, což je těžké pro cut
nebo awk
k oddělení později.
1000_A1\tB1\n
___1_A2\tB2\n
Tento problém mohu vyřešit pomocí sed -r 's/^ *([0-9]+)/\1\t/'
pro změnu oddělovače na tab. Poté cut -f1
mohl vrátit:
1000\tA1\tB1\n
1\tA2\tB2\n
Zdá se však, že se běžně používá uniq -c
oddělte číslo tabulátorem. Proč tato funkce chybí? Existuje nějaký jiný jednodušší způsob, jak to udělat?
Přijatá odpověď:
Zdá se, že máte formát jako <číslo>
název pole 1
. Pokud je to to, co chcete, jednoduše odstraňte počáteční část čísla a zkontrolujte řazení zbývající části prvního sloupce:
echo "$input" | sed -r 's/^ *[^ ]+ //' | sort -c -k1,1