Ismétlődő adatok keresése Linux szövegfájlban az uniq használatával

Ismétlődő adatok keresése Linux szövegfájlban az uniq használatával

Találkozott már szöveges fájlokkal, amelyek ismétlődő sorokat és ismétlődő szavakat tartalmaznak? Lehet, hogy rendszeresen dolgozik a parancskimenettel, és szeretné szűrni azokat a különböző karakterláncokhoz. Ami a szöveges fájlokat és a redundáns adatok eltávolítását illeti Linuxon, a uniq parancs a legjobb megoldás.





Ebben a cikkben részletesen megvitatjuk az uniq parancsot, valamint részletes útmutatót a parancs használatával az ismétlődő sorok eltávolításáról egy szövegfájlból.





Mi az uniq parancs?

A Linux Uniq parancsával azonos sorokat jeleníthet meg egy szövegfájlban. Ez a parancs akkor lehet hasznos, ha el szeretné távolítani az ismétlődő szavakat vagy karakterláncokat egy szövegfájlból. Mivel az uniq parancs illeszkedik a szomszédos sorokhoz a redundáns másolatok kereséséhez, csak rendezett szöveges fájlokkal működik.





Szerencsére csövezni lehet fajta parancsot az uniq segítségével, hogy a szövegfájlt a paranccsal kompatibilis módon rendezze. Az ismétlődő sorok megjelenítésén kívül az uniq parancs számolhatja a duplikált sorok előfordulását egy szöveges fájlban.

Az uniq parancs használata

Különféle lehetőségek és jelzők használhatók az uniq használatával. Némelyikük alapvető, és egyszerű műveleteket hajt végre, például ismétlődő sorokat nyomtat, míg mások a haladó felhasználóknak szólnak, akik gyakran dolgoznak szöveges fájlokkal Linuxon.



Alapszintaxis

A uniq parancs alapvető szintaxisa a következő:

uniq option input output

...ahol választási lehetőség a parancs bizonyos módszereinek meghívására használt zászló, bemenet a szövegfájl feldolgozásra, és Kimenet a kimenetet tároló fájl elérési útja.





Az Kimenet argumentum nem kötelező, és kihagyható. Ha a felhasználó nem adja meg a bemeneti fájlt, az uniq a szabványos kimenet adatait veszi bemenetként. Ez lehetővé teszi a felhasználó számára, hogy az uniq -vel csövezzen más Linux parancsok .

Példa szövegfájl

A szövegfájlt fogjuk használni duplicate.txt mint a parancs bemenete.





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.

Ne feledje, hogy ezt a szövegfájlt már rendbe tettük a fajta parancs. Ha más szövegfájllal dolgozik, a következő paranccsal rendezheti azt:

sort filename.txt > sorted.txt

Ismétlődő sorok eltávolítása

A uniq legalapvetőbb felhasználása az ismétlődő karakterláncok eltávolítása a bemenetről és az egyedi kimenet nyomtatása.

uniq duplicate.txt

Kimenet:

Vegye figyelembe, hogy a rendszer nem jeleníti meg a sor második előfordulását Ez egy szöveges fájl . Ezenkívül a fent említett parancs csak a fájl egyedi sorait nyomtatja ki, és nem befolyásolja az eredeti szövegfájl tartalmát.

Ismételt sorok számlálása

A szöveges fájlban az ismétlődő sorok számának megjelenítéséhez használja a -c zászló az alapértelmezett paranccsal.

uniq -c duplicate.txt

Kimenet:

A rendszer megjeleníti a szövegfájlban lévő összes sor számát. Láthatja, hogy a vonal Ez egy szöveges fájl kétszer fordul elő a fájlban. Alapértelmezés szerint a uniq parancs megkülönbözteti a kis- és nagybetűket.

Ha csak ismétlődő sorokat szeretne nyomtatni a szövegfájlból, használja a -D zászló. Az -D áll Másolat .

uniq -D duplicate.txt

A rendszer a következőképpen jeleníti meg a kimenetet.

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

A mezők kihagyása az ismétlődések keresése közben

Ha bizonyos számú mezőt ki szeretne hagyni a karakterláncok egyeztetése közben, akkor használja a -f zászló a paranccsal. Az -f áll Terület .

Tekintsük a következő szövegfájlt mezők.txt .

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

Az első mező átugrása:

uniq -f 1 fields.txt

Kimenet:

192.168.0.1 TCP
Linux FS

A fent említett parancs kihagyta az első mezőt (az IP -címeket és az operációs rendszerek nevét), és megfelelt a második szónak (TCP és FS). Ezután az egyes mérkőzések első előfordulását jelenítette meg kimenetként.

Hagyja figyelmen kívül a karaktereket összehasonlításkor

A mezők átugrásához hasonlóan a karaktereket is kihagyhatja. Az -s zászló lehetővé teszi az átugorható karakterek számának megadását az ismétlődő sorok egyeztetése közben. Ez a funkció segít abban az esetben, ha a feldolgozott adatok listaként szerepelnek az alábbiak szerint:

hogyan kell telepíteni a Windows 7 -et a virtualboxra
1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

A fájl első két karakterének (a lista számozásának) figyelmen kívül hagyása list.txt :

uniq -s 2 list.txt

Kimenet:

A fenti kimenetben az első két karaktert figyelmen kívül hagyták, a többit pedig egyedi sorokhoz illesztették.

Ellenőrizze az első N karakterek számát ismétlődésekhez

Az -ban ben jelző lehetővé teszi, hogy csak meghatározott számú karaktert ellenőrizze az ismétlődésekben. Például:

uniq -w 2 duplicate.txt

A fent említett parancs csak az első két karakternek felel meg, és egyedi sorokat nyomtat, ha vannak ilyenek.

Kimenet:

Távolítsa el a kis- és nagybetűket

Amint fentebb említettük, az uniq megkülönbözteti a kis- és nagybetűket, miközben illeszkedik a fájl soraihoz. A karakterek figyelmen kívül hagyásához használja a -én opciót a paranccsal.

uniq -i duplicate.txt

A következő kimenetet fogja látni.

Figyelmeztetés a fenti kimeneten, az uniq nem jelenítette meg a sorokat FOGJUK EZT és EZ SZÖVEGFÁJL .

Kimenet küldése fájlba

A uniq parancs kimenetének fájlba küldéséhez használja a Kimeneti átirányítás ( > ) karakter az alábbiak szerint:

uniq -i duplicate.txt > otherfile.txt

A kimenet szöveges fájlba küldése közben a rendszer nem jeleníti meg a parancs kimenetét. Az új fájl tartalmát a macska parancs.

cat otherfile.txt

Használhat más módszereket is parancssori kimenetet küld egy fájlnak Linux alatt .

Ismétlődő adatok elemzése uniq -val

A legtöbb esetben a Linux szerverek kezelése közben vagy a terminálon dolgozik, vagy szöveges fájlokat szerkeszt. Ezért a szöveges fájlok sorainak redundáns másolatainak eltávolításának ismerete nagy előny lehet a Linux készségei számára.

A szöveges fájlokkal való munka frusztráló lehet, ha nem tudja, hogyan kell szűrni és rendezni a fájlokat. A munka megkönnyítése érdekében a Linux számos szövegszerkesztő parancsot tartalmaz, mint például sed és awk amelyek lehetővé teszik a hatékony munkát szöveges fájlokkal és parancssori kimenetekkel.

Részvény Részvény Csipog Email Ez a 10 Sed példa Linux Power felhasználóvá tesz

Szeretne Linux energiafelhasználóvá válni? Segíteni fog a sed kezelése. Tanuljon ebből a 10 példából.

Olvassa tovább
Kapcsolódó témák
  • Linux
  • Linux
A szerzőről Deepesh Sharma(79 cikk megjelent)

A Deepesh a MUO Linux -szerkesztője. Információs útmutatókat ír Linuxon, célja, hogy boldog élményt nyújtson minden újonnan érkezőnek. Nem biztos a filmekben, de ha a technológiáról akar beszélni, akkor ő a pasija. Szabadidejében találhat könyveket olvasni, különböző zenei műfajokat hallgatni vagy gitározni.

Továbbiak a Deepesh Sharma -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide