GNU/Linux >> Znalost Linux >  >> Linux

Výukový program Uniq Command s příklady pro začátečníky

Pokud pracujete převážně na příkazovém řádku a každý den pracujete s velkým množstvím textových souborů, měli byste vědět o Uniq příkaz.

Příkaz Uniq vám pomůže snadno najít opakované a duplicitní řádky ze souboru. Uniq neslouží pouze k hledání duplikátů, ale také k jejich odstranění, zobrazení počtu výskytů duplicitních řádků, zobrazení pouze opakovaných řádků a zobrazení pouze jedinečných řádků atd.

Vezměte prosím na vědomí, že příkaz 'uniq' nezjistí opakované řádky, pokud nejsou vedle sebe. Možná je tedy budete muset nejprve seřadit nebo zkombinovat příkaz sort s uniq, abyste získali výsledky. Dovolte mi, abych vám ukázal několik příkladů.

Protože příkaz uniq je součástí balíčku GNU coreutils, je ve většině distribucí Linuxu předinstalovaný. Nezatěžujme se tedy instalací a podívejme se na praktické příklady příkazů Uniq.

Příklady příkazů Uniq

Nejprve vytvořte soubor s několika duplicitními řádky.

$ vi ostechnix.txt
welcome to ostechnix
welcome to ostechnix
Linus is the creator of Linux.
Linux is secure by default
Linus is the creator of Linux.
Top 500 super computers are powered by Linux

Jak vidíte ve výše uvedeném souboru, máme několik opakovaných řádků (první, druhý, třetí a pátý řádek jsou duplikáty).

1. Odstraňte po sobě jdoucí duplicitní řádky v souboru pomocí příkazu Uniq

Pokud použijete příkaz 'uniq' bez jakýchkoli argumentů, odstraní všechny po sobě jdoucí duplicitní řádky a zobrazí pouze jedinečné řádky.

$ uniq ostechnix.txt

Ukázkový výstup:

Jak můžete vidět, příkaz uniq odstranil všechny po sobě jdoucí duplicitní řádky v daném souboru. Možná jste si také všimli, že výše uvedený výstup má stále duplikáty na druhém a čtvrtém řádku. Je to proto, že příkaz uniq vynechá opakované řádky pouze v případě, že sousedí. Můžeme samozřejmě odstranit i ty nenásledující duplikáty. Podívejte se na druhý příklad níže.

2. Odstraňte všechny duplicitní řádky

$ sort ostechnix.txt | uniq

Ukázkový výstup:

Vidět? Nejsou zde žádné duplikáty ani opakované řádky. Jinými slovy, výše uvedený příkaz zobrazí každý řádek ze souboru ostechnix.txt jednou .

Ve výše uvedeném příkladu jsme použili příkaz sort ve spojení s uniq, protože, jak jsem již zmínil, uniq nenajde duplicitní/opakované řádky, pokud nejsou vedle sebe.

3. Zobrazit pouze jedinečné řádky ze souboru

Chcete-li zobrazit pouze jedinečné řádky ze souboru, příkaz by byl:

$ sort ostechnix.txt | uniq -u

Ukázkový výstup:

Linux is secure by default
Top 500 super computers are powered by Linux

Jak vidíte, v daném souboru máme pouze dva jedinečné řádky.

4. Zobrazit pouze duplicitní řádky

Podobně můžeme také zobrazit duplicitní řádky ze souboru jako níže.

$ sort ostechnix.txt | uniq -d

Ukázkový výstup:

Linus is the creator of Linux.
welcome to ostechnix

Tyto dva jsou opakované/duplikované řádky v souboru ostechnix.txt. Vezměte prosím na vědomí, že -d (malé písmeno d) vytiskne pouze duplicitní řádky , jeden pro každou skupinu . Chcete-li vytisknout všechny duplicitní řádky , použijte -D (velké d) jako níže.

$ sort ostechnix.txt | uniq -D

Podívejte se na rozdíl mezi oběma příznaky na níže uvedeném snímku obrazovky.

5. Zobrazení počtu výskytů každého řádku v souboru

Z nějakého důvodu možná budete chtít zkontrolovat, kolikrát se řádek v daném souboru opakuje. Chcete-li to provést, použijte -c příznak jako níže.

$ sort ostechnix.txt | uniq -c

Ukázkový výstup:

 2 Linus is the creator of Linux.
 1 Linux is secure by default
 1 Top 500 super computers are powered by Linux
 2 welcome to ostechnix

Můžeme také zobrazit počet výskytů každého řádku spolu s tímto řádkem, seřazený podle nejčastějšího pomocí příkazu:

$ sort ostechnix.txt | uniq -c | sort -nr

Ukázkový výstup:

 2 welcome to ostechnix
 2 Linus is the creator of Linux.
 1 Top 500 super computers are powered by Linux
 1 Linux is secure by default

6. Omezte srovnání na 'N' znaků

Příkaz Uniq nám umožňuje omezit porovnání na určitý počet znaků řádků v souboru pomocí -w vlajka. Například omezme srovnání na první 4 znaky řádků v souboru a zobrazme opakované řádky, jak je uvedeno níže.

$ uniq -d -w 4 ostechnix.txt

7. Vyhněte se porovnávání s prvními 'N' znaky

Stejně jako limitní srovnání s N znaky řádků v souboru se můžeme také vyhnout porovnání prvních N znaků pomocí -s vlajka.

Následující příkaz zabrání porovnání s prvními 4 znaky řádků v souboru:

$ uniq -d -s 4 ostechnix.txt

Abyste se vyhnuli porovnávání prvních N polí místo znaků, použijte ve výše uvedeném příkazu příznak '-f'.

Další podrobnosti naleznete v části nápovědy;

$ uniq --help

a manuálové stránky.

$ man uniq

Přečtěte si také:

  • Výukový program pro skládání s příklady pro začátečníky

Linux
  1. Výukový program příkazů Linux factor pro začátečníky (s příklady)

  2. Linux ano Příkazový kurz pro začátečníky (s příklady)

  3. Linux nproc Command Tutorial pro začátečníky (s příklady)

  1. Rozšíření Linuxu Command Tutorial pro začátečníky (s příklady)

  2. Kurz příkazu typu s příklady pro začátečníky

  3. Návod Shuf Command s příklady pro začátečníky

  1. Linux Uniq Command Tutorial pro začátečníky (10 příkladů)

  2. Výukový program pro Linux tac Command pro začátečníky (s příklady)

  3. Numfmt Command Tutorial s příklady pro začátečníky