Pokud jste uživatelem Linuxu a vaše práce zahrnuje práci a manipulaci s textovými soubory a řetězci, pak byste již měli být obeznámeni s příkazem uniq, protože se v této oblasti nejčastěji používá.
Pro ty, kteří neznají příkaz uniq, je to nástroj příkazového řádku, který se používá k nahlášení nebo vynechání opakovaných řetězců nebo řádků. Toto v podstatě odfiltruje sousední odpovídající řádky z INPUT (nebo standardního vstupu) a zapíše na OUTPUT (nebo standardní výstup). Bez možnosti jsou odpovídající řádky sloučeny s prvním výskytem.
Níže je uvedeno několik příkladů použití příkazu uniq
1) Vynechat duplikáty
Spuštění příkazů uniq bez zadání jakýchkoli parametrů jednoduše vynechá duplikáty a zobrazí jedinečný výstup řetězce.
fluser@fvm:~/Documents/files$cat file1
Hello
Hello
How are you?
How are you?
Thank you
Thank you
fluser@fvm:~/Documents/files$ uniq file1
Hello
How are you?
Thank you
2) Zobrazení počtu opakovaných řádků
S parametrem -c je možné zobrazit duplicitní počet řádků v souboru
fluser@fvm:~/Documents/files$ cat file1
Hello
Hello
How are you?
How are you?
Thank you
Thank you
fluser@fvm:~/Documents/files$ uniq -c file1
2 Hello
2 How are you?
2 Thank you
3) Tiskněte pouze duplikáty
Pomocí parametru -d můžeme vybrat pouze řádky, které byly duplikovány uvnitř souboru
fluser@fvm:~/Documents/files$ cat file1
Hello
Hello
Good morning
How are you?
How are you?
Thank you
Thank you
Bye
fluser@fvm:~/Documents/files$ uniq -d file1
Hello
How are you?
Thank you
4) Při porovnávání ignorujte velká a malá písmena
Normálně, když používáte příkaz uniq, bere v úvahu velikost písmen. Ale pokud chcete ignorovat velikost písmen, můžete použít parametr -i
fluser@fvm:~/Documents/files$ cat file1
Hello
hello
How are you?
How are you?
Thank you
thank you
fluser@fvm:~/Documents/files$ uniq file1
Hello
hello
How are you?
Thank you
thank you
fluser@fvm:~/Documents/files$ uniq -i file1
Hello
How are you?
Thank you
5) Tiskněte pouze jedinečné řádky
Pokud chcete vidět pouze jedinečné řádky v souboru, můžete použít parametr -u
fluser@fvm:~/Documents/files$ cat file1
Hello
Hello
Good morning
How are you?
How are you?
Thank you
Thank you
Bye
fluser@fvm:~/Documents/files$ uniq -u file1
Good morning
Bye
6) Třídit a najít duplikáty
Někdy se duplicitní záznamy mohou nacházet na různých místech souborů. V takovém případě, pokud jednoduše použijeme příkaz uniq, nezjistí tyto duplicitní položky v různých řádcích. V takovém případě musíme nejprve soubor seřadit a poté můžeme najít duplikáty
fluser@fvm:~/Documents/files$ cat file1
Adam
Sara
Frank
John
Ann
Matt
Harry
Ann
Frank
John
fluser@fvm:~/Documents/files$ sort file1 | uniq -c
1 Adam
2 Ann
2 Frank
1 Harry
2 John
1 Matt
1 Sara
7) Uložte výstup do jiného souboru
Výstup našeho příkazu uniq lze jednoduše uložit do jiného souboru, jak je uvedeno níže
fluser@fvm:~/Documents/files$ cat file1
Hello
Hello
How are you?
Good morning
Good morning
Thank you
fluser@fvm:~/Documents/files$ uniq -u file1
How are you?
Thank you
fluser@fvm:~/Documents/files$ uniq -u file1 output
fluser@fvm:~/Documents/files$ cat output
How are you?
Thank you
8) Ignorujte znaky
Chcete-li ignorovat několik znaků na začátku, můžete použít parametr -s, ale musíte zadat počet znaků, které musíte ignorovat
fluser@fvm:~/Documents/files$ cat file1
1apple
2apple
3pears
4banana
5banana
fluser@fvm:~/Documents/files$ uniq -s 1 file1
1apple
3pears
4banana
Máte-li jakékoli dotazy nebo myšlenky, které byste k tomuto tématu mohli sdílet, použijte formulář pro zpětnou vazbu
Přečtěte si také:
- Jak používat Linux Tr Command s příklady
- Stručný přehled 106 linuxových příkazů s příklady