spot_img
Thursday, April 25, 2024
spot_img
HomeTechBilgi TeknolojisiLinux tr Komutu Nasıl Kullanılır?

Linux tr Komutu Nasıl Kullanılır?

-

Bir dizüstü bilgisayarda Ubuntu Linux başlangıç ​​ekranı
Jordan Gloor / Nasıl Yapılır Geek
tr komutu, çıktı olarak yeni bir akış oluşturarak bir metin akışı üzerinde dönüşümler gerçekleştirir. Komut satırında belirlediğiniz kurallara göre karakterleri değiştirebilir, silebilir veya dönüştürebilirsiniz.

Linux’ta bir metin akışını değiştirmek için gösterişsiz bir yönteme mi ihtiyacınız var? Girilen metni değiştirirken, kaldırırken, birleştirirken ve sıkıştırırken size zaman kazandırabilecek tr komutundan başka bir yere bakmayın. Bu şekilde yapılır.

tr Komutu Nedir?

Linux tr komut, istenmeyen karakterleri metin akışlarından ayıklamak ve diğer düzgün manipülasyon hileleri için hızlı ve basit bir yardımcı programdır. Adını “translate” kelimesinden alır ve trkökleri Unix geleneğinde derinlere uzanır.

Hepimizin bildiği gibi Linux, Unix’in açık kaynaklı bir yeniden yazımıdır. Karışıma kendi malzemelerini de katıyor. Bayt bayt bir klon değildir, ancak tasarım ilkelerinin ve mühendislik yönetiminin çoğunu Unix işletim sisteminden aldığı açıktır.

Şimdiye kadar yalnızca iki Linux dağıtımının POSIX uyumlu olduğu onaylanmış ve resmi olarak Unix’in uygulamaları olarak kabul edildikleri onaylanmıştır—EulerOS ve Inspur K-UX—Linux, iş dünyasında neredeyse tamamen Unix’in yerini almıştır.

Tüm Linux dağıtımları, en azından temel hizmetlerinde, Unix felsefesine bağlıdır. Unix felsefesi, Unix öncülerinin yeni işletim sistemleri için sahip oldukları vizyonu özetlemektedir. Genellikle “Bir şeyi iyi yapan programlar yazın” şeklinde yorumlanır. Ama bundan daha fazlası var.

En güçlü yeniliklerden biri, programların diğer programlara girdi olarak kullanılabilecek çıktılar üretmesi gerektiğiydi. Bir programdan gelen çıktı akışını sıradaki bir sonraki programa giriş akışı olarak kullanarak, komut satırı yardımcı programlarını birlikte zincirleme bağlama yeteneği son derece güçlüdür.

Bazen, sıradaki bir sonraki programa ulaşmadan önce bir programın çıktısında ince ayar yapmak veya ince ayar yapmak isteyebilirsiniz. Ya da belki girdilerinizi bir Linux komut satırı aracından almıyorsunuz, özel ihtiyaçlarınız göz önünde bulundurularak oluşturulmamış bir dosyadan metin akışı yapıyorsunuz.

burası tr kendine gelir. Çıkış akışını üretmek için giriş akışında bir dizi basit dönüşüm gerçekleştirmenize izin verir. Bu çıktı akışı bir dosyaya yeniden yönlendirilebilir, başka bir Linux programına ve hatta başka bir örneğine beslenebilir. tr akışa uygulanan çoklu dönüşümlere sahip olmak.

Karakterleri Değiştirme

bu tr komut, giriş akışında kurallara göre çalışır. Herhangi bir komut satırı seçeneği olmadan kullanılır, varsayılan eylem tr giriş akışındaki karakterleri diğer karakterlerle değiştirmektir.

komutları tr genellikle iki karakter kümesi gerektirir. İlk set, giriş akışında bulunursa değiştirilecek karakterleri tutar. İkinci set, değiştirilecekleri karakterleri tutar.

Bunun çalışma şekli, birinci setteki ilk karakterin tekrarı, ikinci setteki ilk karakterle değiştirilecektir. Birinci kümedeki ikinci karakterin tekrarı, ikinci kümedeki ikinci karakterle değiştirilir ve bu böyle devam eder.

Bu örnek, giriş akışında “c” harfini arayacaktır. trve her geçtiği yeri “z” harfiyle değiştirin. Dikkat tr büyük/küçük harfe duyarlıdır.

kullanıyoruz echo içine biraz metin itmek için tr .

echo abcdefabc | tr 'c' 'z'

Tek bir karakteri tr ile değiştirmek

Tüm “c” oluşumları “z” ile değiştirilir ve yeni dizi terminal penceresine yazılır.

Bu kez “a” ve “c” olmak üzere iki harf arayacağız. “ac” aramadığımıza dikkat edin. “a”yı arıyoruz, sonra “c”yi arıyoruz. Herhangi bir “a” kelimesini “x” ile ve “c” kelimesini “z” ile değiştireceğiz.

echo abcdefabc | tr 'ac' 'xz'

tr ile iki harfi silme

Bunun çalışması için her iki sette de aynı sayıda karaktere sahip olmanız gerekir. Bunu yapmazsanız, öngörülebilir, ancak muhtemelen istenmeyen davranışlarla karşılaşacaksınız.

echo 'call me Ishmael.' | tr 'abcdjklm' '123'

tr ile dengesiz karakter kümeleri kullanma

Birinci sette ikinci settekinden daha fazla karakter var. “d” ila “m” harflerinin ikinci sette karşılık gelen karakteri yoktur. Yine de değiştirilecekler ama hepsi ikinci setteki son karakterle değiştirilecek.

Bunun bazı durumlarda yararlı olması hemen hemen olasıdır, ancak bunu önlemek istiyorsanız -t (kes) seçeneği. Bu, yalnızca birinci kümede yer alan ve ikinci kümede eşleşen bir karaktere sahip karakterleri değiştirir.

echo 'call me Ishmael.' | tr -t 'abcdjklm' '123'

truncate seçeneğiyle dengesiz karakter kümelerini kullanma

Aralıkları ve Belirteçleri Kullanma

Set one ve set two karakter aralıkları içerebilir. Örneğin, [a-z] tüm küçük harfleri temsil eder ve [A-Z] tüm büyük harfleri temsil eder. Bunu bir metin akışının durumunu değiştirmek için kullanabiliriz.

Bu, giriş akışını büyük harfe dönüştürür.

echo "How-To Geek" | tr '[a-z]' '[A-Z]'

Bir dizeyi büyük harfe dönüştürmek için karakter aralıklarını kullanma

Durumu diğer yöne çevirmek için aynı komutu kullanabiliriz ancak komut satırında büyük ve küçük harf aralıkları değiştirilir.

echo "How-To Geek" | tr '[A-Z]' '[a-z]'

Bir dizeyi küçük harfe dönüştürmek için karakter aralıklarını kullanma

Eşleştirmek isteyebileceğimiz bazı yaygın durumlar için kullanabileceğimiz belirteçler var.

  • [:alnum:]: Harfler ve rakamlar.
  • [:alpha:]: Sadece mektuplar.
  • [:digit:]: Yalnızca rakamlar.
  • [:blank:]: Sekmeler ve boşluklar.
  • [:space:]: Yeni satır karakterleri dahil tüm boşluklar.
  • [:graph:]: Semboller dahil tüm karakterler, ancak boşluklar hariç.
  • [:print:]: Boşluklar dahil semboller dahil tüm karakterler.
  • [:punct:]: Tüm noktalama işaretleri.
  • [:lower:]: Küçük harfler.
  • [:upper:]: Büyük harfler.

Belirteçleri kullanarak küçük harften büyük harfe ve büyük harften küçük harfe dönüştürmelerimizi aynı kolaylıkla gerçekleştirebiliriz.

echo "How-To Geek" | tr '[:lower:]' '[:upper:]'
echo "How-To Geek" | tr '[:upper:]' '[:lower:]'

Metin dizelerinin durumunu değiştirmek için belirteçleri kullanma

Eşleşmeleri Ters Çevirmek

bu -c (tamamlayıcı) seçeneği, ilk kümedekiler dışındaki tüm karakterlerle eşleşir. Bu komut “c” harfi dışındaki her şeyi kısa çizgiye dönüştürür” - “.

echo abcdefc | tr -c 'c' '-'

Belirtilen karakterler dışındaki tüm karakterleri diğer karakterlerle değiştirme

Bu komut ilk kümeye “a” harfini ekler. “a” veya “c” dışındaki herhangi bir şey kısa çizgiye dönüştürülür ” - ” karakter.

echo abcdefc | tr -c 'ac' '-'

Belirtilen birden çok karakter dışındaki tüm karakterleri diğer karakterlerle değiştirme

Karakterleri Silme ve Sıkıştırma

Kullanabiliriz tr karakterleri değiştirmeden tamamen kaldırmak için.

Bu komut, -d (delete) seçeneği, giriş akışından herhangi bir “a”, “d” veya “f” oluşumunu kaldırmak için.

echo abcdefc | tr -d 'adf'

tr ile bir metin dizisinden birden fazla karakter silme

Bu, komut satırında iki değil, yalnızca bir karakter setimizin olduğu bir örnektir.

Bir diğeri, kullandığımız zaman -s (sıkma-tekrarlar) seçeneği. Bu seçenek, tekrarlanan karakterleri tek bir karaktere indirger.

Bu örnek, boşluk karakterinin tekrarlanan dizilerini tek bir boşluğa indirecektir.

echo "a  b  c    de   f   c" | tr -s '[:blank:]'

tr ile tekrarlanan karakter dizilerini karakterin tek bir oluşumuna değiştirme

biraz kafa karıştırıcı [:blank:] belirteç boşluk karakterini temsil eder ve [:space:] belirteç, sekmeler ve yeni satır karakterleri dahil olmak üzere tüm boşluk biçimlerini temsil eder.

Bu durumda, değiştirebiliriz [:blank:] ile [:space:] ve aynı sonucu elde edin.

echo "a  b  c     de   f   c" | tr -s '[:space:]'

tr ile tekrarlanan karakter dizilerini karakterin tek bir oluşumuna değiştirme

Karakterleri Silme

arasındaki farklar [:blank:] Ve [:space:] karakterleri sildiğimizde görünür hale gelir. Bunu yapmak için, -d (sil) seçeneğini seçin ve bir dizi karakter sağlayın. tr giriş akışında arayacaktır. Bulduğu her şey kaldırılır.

echo "a  b  c     de   f   c" | tr -d '[:blank:]'

tr ile bir metin dizisinden boşlukları (boşluk karakterleri) silme

Boşluklar silinir. Çıkış akışı terminal penceresine yazıldıktan sonra yeni bir satır aldığımızı unutmayın. Bu komutu tekrar edersek ve kullanırsak [:space:] boş yerine farklı bir sonuç elde ederiz.

echo "a  b  c    de   f   c" | tr -d '[:blank:]'

tr ile bir metin dizisinden boşluk silme

Bu sefer çıktıdan sonra yeni bir satır başlatmıyoruz, komut istemi tam onun karşısına çıkıyor. Bunun nedeni ise [:space:] yeni satırlar içerir. Boşluklar, sekmeler ve yeni satır karakterleri giriş akışından kaldırılır.

Elbette gerçek bir boşluk karakteri de kullanabilirsiniz.

echo "a  b  c    de   f   c" | tr -d ' '

tr ile bir boşluk karakteri belirterek bir metin dizisinden boşlukları silme

Rakamları da kolayca silebiliriz.

echo abcd123efg | tr -d '[:digit:]'

tr ile bir metin dizisinden basamak silme

birleştirerek -c (tamamlayıcı) ve -d (delete) seçenekleri ile rakamlar dışında her şeyi silebiliriz.

echo abcd123efg | tr -cd '[:digit:]'

tr kullanarak bir metin dizisinden rakamlar dışındaki her şeyi silme

Rakamlar dışındaki her şeyin tüm harfler anlamına geldiğini unutmayın, Ve tüm boşluklar, yani bir kez daha sonlandırıcı yeni satırı kaybediyoruz.

Çizgileri Birleştirme ve Ayırma

Boşlukların yerine yeni satır karakterlerini koyarsak, bir metin satırını bölebilir ve her kelimeyi kendi satırına yerleştirebiliriz.

echo 'one two three four' | tr ' ' '\n'

Bir metin satırını tr ile satır başına bir kelimeye bölme

Kelimeleri ayıran sınırlayıcıyı da değiştirebiliriz. Bu komut iki nokta üst üste yerine geçer ” : ” boşluklar için.

echo 'one two three four' | tr ' ' ':'

tr ile kelime sınırlayıcıyı boşluklardan iki nokta üst üste değiştirme

Ayırıcının kullanımda olduğunu bulabilir ve onu yeni satır karakterleriyle değiştirerek okunması zor metni yönetimi daha kolay çıktılara ayırabiliriz.

Yol ortam değişkeni, birçok dizin yolundan oluşan uzun bir dizedir. Bir kolon ” : ” her yolu ayırır. Onları yeni satır karakterleriyle değiştireceğiz.

echo $PATH
echo $PATH | tr ":" "\n"

$PATH ortam değişkenini, tr ile her satıra bir tane olmak üzere ayrı dizin yollarına bölme

Görsel olarak ayrıştırmak çok daha kolay.

Tek bir satıra yeniden biçimlendirmek istediğimiz çıktımız varsa, onu da yapabiliriz. “lines.txt” dosyası, her satırında bir sözcük bulunan bazı metinler içerir. Bunu besleyeceğiz tr ve tek bir satıra dönüştürün.

cat files.txt
cat lines.txt | tr '\n' ' '

tr kullanarak çok satırlı girişi tek bir metin satırında birleştirme

Borularla tr Kullanma

çıktısını kullanabiliriz tr başka bir program için girdi olarak, hatta tr kendisi.

Bu komut kullanır tr dört kere.

  • İlk tr girişteki tüm kısa çizgileri “-” siler.
  • İkinci tr tekrarlanan boşlukları tek boşluklara sıkıştırır.
  • Üçüncü tr boşlukları alt çizgi “_” karakterleriyle değiştirir.
  • Dördüncü ve son tr dizeyi küçük harfe dönüştürür.
echo "Mangled FiLE-nAMe.txt" | tr -d '-' | tr -s ' ' | tr ' ' '_' | tr '[:upper:]' '[:lower:]'

Dört tr örneğinden oluşan bir ardışık düzen

İLGİLİ: Linux’ta Borular Nasıl Kullanılır?

Basit olduğu kadar basit

bu tr komut harika çünkü basit. Öğrenecek ve hatırlayacak çok şey yok. Ancak basitliği de onun çöküşü olabilir.

Hata yapmayın, sık sık bunu bulacaksınız tr gibi daha karmaşık araçlara ulaşmak zorunda kalmadan ihtiyacınız olanı yapalım. sed .

Ancak, bir şeyler yapmakta zorlanıyorsanız tr ve kendinizi uzun papatya komut zincirleri oluştururken buluyorsunuz, muhtemelen kullanmalısınız sed.

Related articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

0FansLike
0FollowersFollow
0FollowersFollow
0SubscribersSubscribe
spot_img

Latest posts