Linux Komutları

Linux uniq Komutu

Linux uniq Komutu
"uniq" ne demek? Verilen girişte herhangi bir yinelenen metni rapor edecek veya çıkaracak harika bir komut satırı aracıdır. Bu, GNU çekirdek programlarının bir parçasıdır ve bu nedenle, oradaki her UNIX/Linux sisteminde mevcuttur. "uniq" ile başlayalım!

tekil kullanım

“uniq” komutlarının temel yapısı şöyle görünür:.

tek

Örneğin, “yinelenen” içeriğine bir göz atalım.Txt". Tabii ki, bu makalenin amacı için çok sayıda yinelenen metin içeriği içeriyor.

kedi kopyası.metin | çeşit

Açıkça yinelenen içerikler var, değil mi?? Bunları “uniq” ile filtreleyelim.

kedi çifti | sıralama | tek

Çıktı, yalnızca benzersiz değerlerle çok daha iyi görünüyor, doğru?

Ancak, işi yapmak için borulama yöntemini kullanmanıza gerek yoktur. “uniq” doğrudan dosyalar üzerinde de çalışabilir.

tek

Yinelenen içeriği silme

Evet, girdiden yinelenen içeriği silmek ve yalnızca ilk oluşumu tutmak "uniq" öğesinin varsayılan davranışıdır. Bu yinelenen silme işleminin yalnızca "uniq" eşzamanlı yinelenen öğeler bulduğunda gerçekleştiğini unutmayın.

Bu örneği inceleyelim. Başka bir “yinelenen1” yarattım.Yinelenen öğeler içeren robots.txt dosyası. Ancak yan yana değiller.

yarasa kopyası1.Txt

Şimdi, bu çıktıyı “uniq” kullanarak filtreleyin.

kedi çifti1.metin | tek

Tüm yinelenen içerikler orada! Bu nedenle, buna benzer bir şeyle çalışıyorsanız, tüm içeriğin sıralandığından ve kopyaların birbirine bitişik olduğundan emin olmak için içeriği "sıralama" yoluyla yönlendirin.

kedi çifti1.metin | çeşit

Şimdi, “uniq” işini normal şekilde yapacak.

kedi çifti1.metin | sıralama | tek

Tekrar sayısı

Dilerseniz içerikte bir satırın kaç kez tekrarlandığını kontrol edebilirsiniz. Sadece “uniq” ile “-c” bayrağını kullanın.

kedi kopyası.metin | sıralama | tek -c

Not: "uniq", yinelenenleri silmek için normal işini de yapacaktır.

Yinelenen satırları yazdırma

Çoğu zaman kopyalardan kurtulmak isteriz, değil mi?? Bu sefer, neyin kopya olduğunu kontrol etmeye ne dersiniz??

Evet, “uniq” bunu da yapabilir. Bu durumda “-D” seçeneğini kullanmanız gerekir. Daha iyi, daha rafine bir sonuç elde etmek için arada "sıralama" kullanacağım.

kedi kopyası.metin | sıralama | tek -D

VAY! Bu çok fazla kopya! Ancak, tüm kopyalar birlikte kümelenir, bu da gezinmeyi zorlaştırır. Araya biraz boşluk eklemeye ne dersiniz??

uniq --all-repeated=

Burada 3 farklı yöntem mevcuttur: yok (varsayılan değer), başa ekle ve ayır.

kedi kopyası.metin | sıralama | uniq --all-repeated=başa ekle

kedi kopyası.metin | sıralama | uniq --all-repeated=separate

Şimdi, daha iyi görünüyor.

Benzersizlik denetimi atlanıyor

Çoğu durumda, benzersizliğin hattın farklı bir bölümü tarafından kontrol edilmesi gerekir.

Bunu örnekle anlayalım. Dosyada yinelenen1.robots.txt, yinelemenin ikinci kısım tarafından belirlendiğini varsayalım. Bunu "uniq" e nasıl söylersin?? Genellikle ilk alanı kontrol eder (varsayılan olarak). Eh, biz de bunu yapabiliriz. Sadece işi yapmak için bu "-f" bayrağı var.

tek -f
kedi çifti1.metin | sıralama -k 2 | tek -f 1

“Sort” bayrağı ile merak ediyorsanız, “sort”a ikinci sütuna göre sıralama yapmasını söylemektir.

Tüm satırları göster, ancak kopyaları ayır

Yukarıda belirtilen tüm örneklere göre, “uniq”, kopyalanan içeriğin yalnızca ilk oluşumunu tutar ve geri kalanını kaldırır. Yinelenen içeriği tamamen kaldırmaya ne dersiniz?? Evet, "-u" bayrağını kullanarak "uniq" ifadesini yalnızca tekrarlanmayan satırları tutmaya zorlayabiliriz.

kedi kopyası.metin | çeşit

kedi kopyası.metin | sıralama | benzersiz

Hmm, artık çok fazla kopya gitti…

İlk karakterleri atla

“uniq” e diğer alanlarda işini yapmasını nasıl söyleyeceğimizi tartıştık, değil mi?? Birkaç ilk karakterden sonra kontrole başlama zamanı. Bu amaçla, karakter sayısı ile birlikte “-s” bayrağı “uniq” e işi yapmasını söyleyecektir.

kedi çifti1.metin | sıralama -k 2 | uniq -s 2

“uniq” in görevini yalnızca ikinci alanda yapması örneğe benzer. Bu hile ile başka bir örnek görelim.

kedi kopyası.metin | sıralama | tekil -s 5

YALNIZCA ilk karakterleri kontrol edin

Tıpkı "uniq"e ilk birkaç karakteri atlamasını söylediğimiz gibi, "uniq"e de sadece ilk çift karakterde kontrolü sınırlamasını söylemek mümkündür. Bu amaç için özel bir “-w” bayrağı var.

kedi kopyası.metin | sıralama | tek -w 5

Bu komut, “uniq” e ilk 5 karakter içinde benzersizlik kontrolü yapmasını söyler.

Bu komutun başka bir örneğini görelim.

kedi çifti1.metin | sıralama | tek -w 5

“Dupli” bölümünde benzersizlik kontrolünü yaptığı için diğer tüm “yinelenen” giriş örneklerini siler.

Büyük/küçük harf duyarlılığı

Benzersizliği kontrol ederken, "uniq" ayrıca karakterlerin durumunu da kontrol eder. Bazı durumlarda, büyük/küçük harf duyarlılığı önemli değildir, bu nedenle “uniq” büyük/küçük harfe duyarsız hale getirmek için “-i” bayrağını kullanabiliriz.

Burada size demo dosyasını sunuyorum.

Büyük ve küçük harflerin karışımıyla gerçekten akıllıca bir kopyalama, değil mi?? Karmaşayı temizlemek için “uniq”in gücünü kullanmanın zamanı geldi!

kedi çifti1.metin | sıralama | uniq -i

dilek kabul!

NULL sonlandırılmış çıktı

"uniq" öğesinin varsayılan davranışı, çıktıyı yeni bir satırla bitirmektir. Ancak çıktı bir NULL ile de sonlandırılabilir. Komut dosyası oluşturmada kullanacaksanız bu oldukça kullanışlıdır. Burada, “-z” bayrağı işi ne yapıyor?.

kedi kopyası.metin | sıralama | tek -z

Birden çok bayrağı birleştirmek

Bir dizi “uniq” bayrağı öğrendik, doğru? Bunları bir araya getirmeye ne dersiniz??

Örneğin, büyük/küçük harf duyarlılığı ile tekrar sayısını birleştiriyorum.

Birden fazla bayrağı birlikte karıştırmayı planlıyorsanız, ilk önce birlikte doğru şekilde çalıştıklarından emin olun. Bazen işler olması gerektiği gibi gitmez.

Son düşünceler

“uniq”, Linux'un sunduğu oldukça benzersiz bir araçtır. Çok güçlü özelliklerle, tonlarca şekilde faydalı olabilir. Tüm bayrakların listesi ve açıklamaları için “uniq” in man ve bilgi sayfalarına bakınız.

adam uniq

tek bilgi

Zevk almak!

Wesnoth 1 Savaşı.13.6 Geliştirme Yayınlandı
Wesnoth 1 Savaşı.13.Geçen ay yayınlanan 6. sürüm, 1. sürümdeki altıncı geliştirme sürümüdür.13.x serisi ve özellikle kullanıcı arayüzü için bir dizi i...
Ubuntu 14'te League Of Legends Nasıl Kurulur.04
League of Legends hayranıysanız, bu, League of Legends koşusunu test etmeniz için bir fırsattır. Linux kullanıcısıysanız LOL'nin PlayOnLinux'ta destek...
En son OpenRA Strateji Oyununu Ubuntu Linux'a yükleyin
OpenRA, klasik Command & Conquer: Red Alert gibi erken Westwood oyunlarını yeniden yaratan bir Libre/Free Gerçek Zamanlı Strateji oyun motorudur. Dağı...