GNU/Linux >> Znalost Linux >  >> Linux

Jak tisknout duplicitní řádky v textovém souboru v Linuxu

Jakmile vstoupíte do domény operačního systému Linux, bude se vám seznam výpočetních možností prostřednictvím prostředí příkazového řádku Linuxu zdát nekonečný. Je to jednoduše proto, že čím více Linux používáte, tím více se chcete učit a tato touha vás provede nesčetnými příležitostmi k učení.

V tomto tutoriálu se podíváme na počítání a tisk duplicitních řádků v textovém souboru v prostředí operačního systému Linux. Tento výukový modul je součástí správy souborů Linux.

Prostředí příkazového řádku nebo terminálu Linuxu není nové ve zpracování vstupních textových souborů. Je tak zběhlý v takových operacích, že se při zpracování textových souborů ještě nesetká s důstojnou výzvou.

Tento tutoriál vnese trochu světla do identifikace/zpracování duplicitních řádků v náhodných textových souborech v Linuxu.

Prohlášení o problému

Aby byl tento tutoriál jednodušší a zajímavější, vytvoříme vzorový textový soubor, který bude fungovat jako náhodný soubor, u kterého chceme zkontrolovat existenci duplicitních řádků.

$ sudo nano sample_file.txt 

Pouhým prohledáním snímku obrazovky výše uvedeného textového souboru bychom měli být schopni zaznamenat existenci některých duplicitních řádků, ale nemůžeme si být jisti jejich přesným počtem výskytů.

Abychom si byli jisti počtem duplicitních řádků, najdeme naše řešení z následujících přístupů založených na příkazovém řádku/terminálu Linuxu:

Najděte duplicitní řádky v souboru pomocí příkazů sort a uniq

Pohodlí používání uniq příkaz je, že přichází s -c možnost příkazu. Tato možnost příkazu je však platná pouze v případě, že textový soubor, na který cílíte/skenujete, má duplicitní sousední řádky.

Chcete-li se vyhnout této nepříjemnosti při používání uniq příkaz k tisku duplicitních řádků si musíme vypůjčit metodu příkazu řazení seskupování opakovaných/duplikovaných řádků v rámci cíleného textového souboru.

Zkrátka nejprve předáme cílený textový soubor přes třídění příkazu a poté jej pomocí kanálu uniq příkaz, který bude doprovázen -c možnost příkazu, jak je ukázáno níže:

$ sort sample_file.txt | uniq -c 

První sloupec (vlevo) výše uvedeného výstupu udává, kolikrát se vytištěné řádky v pravém sloupci objeví v souboru sample_file.txt textový soubor. Například řádek „Miluji Linux“ je duplikován/opakován (3+3+1) krát v rámci textového souboru celkem 7 krát.

Tisk duplicitních řádků v souboru pomocí příkazu Awk

The awk příkaz k vyřešení tohoto „tisku duplicitních řádků v textovém souboru “Problém je jednoduchý jednovrstvý. Abychom pochopili, jak to funguje, musíme to nejprve implementovat, jak je ukázáno níže:

$ awk '{ a[$0]++ } END{ for(x in a) print a[x], x }' sample_file.txt 

Po provedení výše uvedeného příkazu se zobrazí dva sloupce, první sloupec počítá, kolikrát se v textovém souboru objeví opakovaný/duplikovaný řádek, a druhý sloupec ukazuje na příslušný řádek.

Výstup výše uvedeného příkazu však není tak organizovaný jako ten pod sort a unikátní příkazy.

Úspěšně jsme probrali, jak tisknout duplicitní řádky v textovém souboru v prostředí operačního systému Linux.


Linux
  1. Linuxový příkaz nebo skript počítající duplicitní řádky v textovém souboru?

  2. Jak vytisknout výstup příkazu Linuxu do souboru?

  3. Jak zobrazit určité řádky z textového souboru v Linuxu?

  1. Jak přidat text na konec souboru v Linuxu

  2. Jak uložit výstup příkazu do souboru v Linuxu

  3. Příkaz wc pro Linux

  1. Linux File Command:Jak určit typ souboru v Linuxu

  2. Jak zobrazit konkrétní řádky souboru v příkazovém řádku Linuxu

  3. Jak upravit textový soubor v mém terminálu