GNU/Linux >> Znalost Linux >  >> Linux

Jak nechat `třídit | Uniq -c` Oddělit počet výskytů znakem tabulátoru?

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> a chcete zkontrolovat, zda je vstup seřazen podle 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

Linux
  1. Jak zjistit počet vertikálních linek dostupných v terminálu?

  2. Jak získat počet CPU v Linuxu pomocí C?

  3. Jak získat pouze počet řádků souboru

  1. Jak získat počet fyzických disků v Linuxu?

  2. Jak získat číslo displeje, které mi přidělil X

  3. Jak určit počet týdnů v měsíci

  1. Jak zvýšit počet inodů v souborovém systému Ext4?

  2. Jak vytvořit kanál se seznamem příkazů zobrazených jako „karta dokončena“?

  3. Jak spočítat počet řádků v souboru po zápase Grep?