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.
Vytlačte iba opakované riadky
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 LinuxuChcete 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
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 Sharmyprihlá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