Ako nájsť duplicitné údaje v textovom súbore Linux s uniq

Ako nájsť duplicitné údaje v textovom súbore Linux s uniq

Stretli ste sa niekedy s textovými súbormi s opakovanými riadkami a duplicitnými slovami? Možno pravidelne pracujete s výstupom príkazov a chcete ich filtrovať pre odlišné reťazce. Pokiaľ ide o textové súbory a odstraňovanie nadbytočných údajov v systéme Linux, príkaz uniq je vašou najlepšou voľbou.





V tomto článku sa budeme podrobne venovať príkazu uniq spolu s podrobným sprievodcom, ako pomocou príkazu odstrániť duplicitné riadky z textového súboru.





Čo je príkaz uniq?

Príkaz uniq v systéme Linux sa používa na zobrazenie rovnakých riadkov v textovom súbore. Tento príkaz môže byť užitočný, ak chcete z textového súboru odstrániť duplicitné slová alebo reťazce. Pretože príkaz uniq pri hľadaní nadbytočných kópií porovnáva susedné riadky, funguje iba s triedenými textovými súbormi.





Našťastie môžete potrubie triediť príkaz s uniq na usporiadanie textového súboru spôsobom, ktorý je kompatibilný s príkazom. Príkaz uniq môže okrem zobrazovania opakovaných riadkov počítať aj výskyt duplicitných riadkov v textovom súbore.

Ako používať príkaz uniq

V uniq existujú rôzne možnosti a vlajky. Niektoré z nich sú základné a vykonávajú jednoduché operácie, ako napríklad tlač opakovaných riadkov, zatiaľ čo iné sú pre pokročilých používateľov, ktorí často pracujú s textovými súbormi v systéme Linux.



Základná syntax

Základná syntax príkazu uniq je:

uniq option input output

...kde možnosť je príznak používaný na vyvolanie konkrétnych metód príkazu, vstup je textový súbor na spracovanie a výkon je cesta k súboru, do ktorého sa uloží výstup.





The výkon argument je voliteľný a je možné ho preskočiť. Ak užívateľ neurčí vstupný súbor, uniq prevezme ako vstup údaje zo štandardného výstupu. To umožňuje užívateľovi používať Uniq s ďalšie príkazy Linuxu .

Príklad textového súboru

Budeme používať textový súbor duplicate.txt ako vstup pre príkaz.





127.0.0.1 TCP
127.0.0.1 UDP
Do catch this
DO CATCH THIS
Don't match this
Don't catch this
This is a text file.
This is a text file.
THIS IS A TEXT FILE.
Unique lines are really rare.

Upozorňujeme, že tento textový súbor sme už zoradili pomocou súboru triediť príkaz. Ak pracujete s iným textovým súborom, môžete ho zoradiť pomocou nasledujúceho príkazu:

sort filename.txt > sorted.txt

Odstráňte duplicitné riadky

Najzákladnejšie použitie uniq je odstrániť opakované reťazce zo vstupu a vytlačiť jedinečný výstup.

uniq duplicate.txt

Výkon:

Všimnite si, že systém nezobrazuje druhý výskyt riadku Toto je textový súbor . Vyššie uvedený príkaz tiež vytlačí iba jedinečné riadky v súbore a neovplyvní obsah pôvodného textového súboru.

Počítajte opakované riadky

Na výstup počtu opakujúcich sa riadkov v textovom súbore použite -c vlajka s predvoleným príkazom.

uniq -c duplicate.txt

Výkon:

Systém zobrazí počet každého riadka, ktorý sa nachádza v textovom súbore. Môžete vidieť, že riadok Toto je textový súbor sa v súbore vyskytuje dvakrát. V predvolenom nastavení príkaz uniq rozlišuje veľké a malé písmena.

Ak chcete z textového súboru tlačiť iba duplicitné riadky, použite príponu -D vlajka. The -D znamenať Duplikovať .

uniq -D duplicate.txt

Systém zobrazí výstup nasledovne.

This is a text file.
This is a text file.

Pri kontrole duplikátov preskočte polia

Ak chcete preskočiť určitý počet polí pri zhode s reťazcami, môžete použiť -f vlajka s príkazom. The -f znamenať Lúka .

Zvážte nasledujúci textový súbor fields.txt .

192.168.0.1 TCP
127.0.0.1 TCP
354.231.1.1 TCP
Linux FS
Windows FS
macOS FS

Ak chcete preskočiť prvé pole:

uniq -f 1 fields.txt

Výkon:

192.168.0.1 TCP
Linux FS

Vyššie uvedený príkaz preskočil prvé pole (adresy IP a názvy operačných systémov) a zodpovedal druhému slovu (TCP a FS). Potom ako výstup zobrazil prvý výskyt každej zhody.

Pri porovnávaní ignorujte znaky

Rovnako ako preskakovanie polí môžete preskočiť aj znaky. The -s flag umožňuje určiť počet znakov, ktoré sa majú preskočiť pri zhode s duplicitnými riadkami. Táto funkcia pomáha, keď sú údaje, s ktorými pracujete, vo forme zoznamu takto:

kde môžem lacno opraviť svoju obrazovku iphone
1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

Ignorovanie prvých dvoch znakov (číslovanie zoznamov) v súbore list.txt :

uniq -s 2 list.txt

Výkon:

Vo vyššie uvedenom výstupe boli prvé dva znaky ignorované a ostatné z nich boli priradené jedinečným riadkom.

Skontrolujte, či nie je v duplikátoch prvých N znakov

The -v príznak umožňuje skontrolovať duplikáty iba u pevného počtu znakov. Napríklad:

uniq -w 2 duplicate.txt

Vyššie uvedený príkaz bude zodpovedať iba prvým dvom znakom a vytlačí jedinečné riadky, ak existujú.

Výkon:

Odstráňte rozlišovanie malých a veľkých písmen

Ako bolo uvedené vyššie, uniq rozlišuje veľké a malé písmená pri zhode riadkov v súbore. Ak chcete ignorovať veľké a malé písmena, použite -i možnosť príkazom.

uniq -i duplicate.txt

Uvidíte nasledujúci výstup.

Všimnite si toho vo vyššie uvedenom výstupe, uniq riadky nezobrazil CHYŤTE TOTO a TOTO JE TEXTOVÝ SÚBOR .

Odoslať výstup do súboru

Na odoslanie výstupu príkazu uniq do súboru môžete použiť Presmerovanie výstupu ( > ) znak takto:

uniq -i duplicate.txt > otherfile.txt

Pri odosielaní výstupu do textového súboru systém nezobrazí výstup príkazu. Obsah nového súboru môžete skontrolovať pomocou kat príkaz.

cat otherfile.txt

Môžete tiež použiť iné spôsoby odoslať výstup príkazového riadka do súboru v systéme Linux .

Analýza duplicitných údajov pomocou uniq

Pri správe serverov Linux budete väčšinou pracovať buď na termináli, alebo upravovať textové súbory. Vedieť, ako odstrániť nadbytočné kópie riadkov z textového súboru, môže byť preto veľkým prínosom pre vašu sadu znalostí Linuxu.

Práca s textovými súbormi môže byť frustrujúca, ak neviete, ako filtrovať a triediť text v súbore. Aby bola vaša práca jednoduchšia, Linux má niekoľko príkazov na úpravu textu ako napr sed a awk ktoré vám umožnia efektívne pracovať s textovými súbormi a výstupmi príkazového riadka.

zdieľam zdieľam Tweet E -mail Týchto 10 sedadlových príkladov z vás urobí výkonného používateľa Linuxu

Chcete sa stať skúseným používateľom Linuxu? Pomôcť so sedom pomôže. Poučte sa z týchto 10 príkladov sedenia.

Čítajte ďalej
Súvisiace témy
  • Linux
  • Linux
O autorovi Deepesh Sharma(79 publikovaných článkov)

Deepesh je juniorský editor pre Linux na MUO. Píše informačné príručky pre systém Linux s cieľom poskytnúť všetkým novým záujemcom blažený zážitok. Nie ste si istí filmami, ale ak chcete hovoriť o technológiách, je to váš chlap. Vo svojom voľnom čase ho môžete nájsť pri čítaní kníh, počúvaní rôznych hudobných žánrov alebo hre na gitare.

Viac od Deepesh Sharmy

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber