sed

'Sed' Komutunu Kullanarak Kalıptan Sonra Her Şey Nasıl Değiştirilir

'Sed' Komutunu Kullanarak Kalıptan Sonra Her Şey Nasıl Değiştirilir

Değiştirme görevleri Linux'ta farklı şekillerde yapılabilir. 'sed' komutu, değiştirme görevi yapmanın yollarından biridir. Bu komut, farklı bir desen kullanarak bir dizedeki veya dosyadaki metni değiştirmek için kullanılabilir. Bu eğitimde 'sed' komutunu kullanarak eşleşen kalıptan sonra her şeyi nasıl değiştirebileceğiniz gösterilmiştir.

Bir dizedeki eşleşmeden sonra her şeyi değiştirin:

Bu öğreticinin bu bölümünde, bir dize parçasının eşleşen bir desene göre nasıl değiştirilebileceği ve $PARTITION_COLUMN gösterilmiştir. Ancak bu değişken, desen, dizenin başındaki veya ortasındaki herhangi bir kelimeyle eşleşirse çalışır. Desen, dizenin son kelimesiyle eşleşirse metnin yerini almaz.

Örnek-1: Maçtan sonra $PARTITION_COLUMN kullanarak tümünü değiştirin

Aşağıdaki komut 'a' karakterini arayacaktır ve 'a'dan sonra kalan kısım "popüler bir blog sitesi" metni ile değiştirilecektir. $PARTITION_COLUMN.* 'a' karakterinden sonra kalan kısmı tanımlamak için kullanılır.

$ echo "LinuxHint bir web sitesidir" | sed "s/a $PARTITION_COLUMN.*/popüler bir blog sitesi/"

Komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada 'bir web sitesi', 'popüler bir blog sitesi' ile değiştirildi.


Aşağıdaki kalıp ' kelimesini arayacaktır'  ve kalan kısmı ' ile değiştirin' metne göre,'popüler bir blog sitesi' eşleşme varsa ve '' dizenin son kelimesinin bir parçası değil.

$ echo "LinuxHint bir web sitesidir" | sed "s/web.* $PARTITION_COLUMN.*/popüler bir blog sitesi/"

Komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada 'web sitesi' dizenin son kelimesidir ve bu nedenle herhangi bir değiştirme yapılmamıştır.

Örnek-2: Eşleşmeden sonra tümünü desen kullanarak değiştir

Aşağıdaki komut ' kelimesini arayacaktırbash' dizede global olarak ve kelime dizede varsa her şeyi Word ile değiştirin. 'g' burada genel arama için kullanılır.

$ echo "Bash programlamayı seviyorum" | sed "s/bash.*/python komut dosyası/g"

Komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada, dizenin ortasında 'bash' var ve değiştirme yapıldı.

Bir dosyadaki eşleşmeden sonra her şeyi değiştirin:

Maçtan sonra belirli bir satırın veya birden çok satırın veya bir dosyanın kalan satırlarının tüm içeriği ' kullanılarak değiştirilebilirsed' komut. adlı bir metin dosyası oluşturun katılım.Txt Bu bölümde gösterilen örnekleri test etmek için aşağıdaki içerikle.

katılım.Txt

1108885 mevcut
1999979 mevcut
1769994 yok
1105656 yok
1455999 yok

Örnek -3: Eşleşmeden sonra bir dosya satırındaki tüm içeriği değiştirin

Aşağıdaki 'sed' komutu, dosyadaki 1769994 numarasını arayacaktır ve sayı dosyanın herhangi bir satırında varsa, sayı içeren her şey '1586844 var' metniyle değiştirilecektir.

$ kedi allendence.Txt
$ sed "s/1769994.*/1586844 mevcut/" katılım.Txt

Komutları çalıştıran aşağıdaki çıktı görünecektir. Burada arama numarası dosyanın üçüncü satırında bulunur ve değiştirme işlemi yapılmıştır.

Örnek -4: Eşleşmeden sonra bir dosyanın birden çok satırındaki tüm içeriği değiştirin

Aşağıdaki 'sed' komutu, dosyadan birden çok satırı değiştirmek için $PARTITION_COLUMN değişkeninin kullanımını gösterir. Komut, dosyanın her satırının başında '110'u arayacak ve eşleşen metnin bulunacağı 'Geçersiz Giriş' metniyle her şeyi '110' ile değiştirecektir.

$ kedi katılımı.Txt
$ sed "s/^110.* $PARTITION_COLUMN.*/Geçersiz Giriş/" katılım.Txt

Komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Dosyanın iki satırında '110' var ve bu satırlar, yeni metinle değiştirilmiştir.

Örnek-5: Eşleşmeden sonra 'c' kullanarak bir dosya satırındaki tüm içeriği değiştirin

Devamındaki 'sed' komutu, ' kullanımını gösterirc' maçtan sonra her şeyi değiştirmek için. Buraya, 'c' değişikliği gösterir. Komut, kelimeyi arayacaktır 'mevcut' dosyada ve satırın her şeyini metinle değiştirin, 'Bu satır değiştirilir' kelime dosyanın herhangi bir satırında varsa.

$ kedi katılımı.Txt
$ sed '/present/c Bu satırın yerine ' katılım.Txt

Komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Dosyanın ilk iki satırında 'mevcut' kelimesi var ve bu iki satırın yerini değiştirilen metin almıştır.

Örnek-6: Başlangıç ​​ve bitiş düzenine göre bir dosya satırındaki tüm içeriği değiştirin

Bazen başlangıç ​​ve bitiş düzenine göre metni değiştirmek gerekir. Aşağıdaki 'sed' komutu, bir dosyadaki satırları değiştirmek için başlangıç ​​ve bitiş kalıplarını tanımlamanın yolunu gösterir. Komut, dosyada 110 ile başlayan ve 'yok' kelimesiyle biten satırları arayacak ve kalıpların eşleştiği her şeyi 'değiştirildi' kelimesiyle değiştirecektir.

$ kedi katılımı.Txt
$ sed -e 's/^110.*yok$/değiştirilen/g' katılım.Txt

Komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada, birinci ve dördüncü satırlar 110 sayısıyla başlar, ancak 'yok' kelimesi yalnızca dördüncü satırda bulunur. Böylece, dosyanın dördüncü satırı, değiştirilen metinle değiştirildi.

Sonuç:

'sed' komutu, farklı türde metin işleme ile ilgili görevleri gerçekleştirmek için çok güçlü bir Linux aracıdır. Eşleştirme kalıbına dayalı değiştirme görevi, bu öğreticide 'sed' komutunda çeşitli kalıp türleri kullanılarak tartışılmaktadır. $PARTITION_COLUMN, 'c' ve '.*' bu öğreticide, eşleşen desenin bulunduğu dosya satırındaki her şeyi değiştirmek için kullanılır. Burada, '^' ve '$' gibi kalıpları tanımlayan bazı karakterlerin kullanımları gösterilmiştir. Arama amacıyla düzenli ifadede kalıbı tanımlamak için birçok başka karakter mevcuttur. Umarım bu eğitim, okuyucunun maçtan sonra bir dosyadaki her şeyi değiştirmenin temellerini öğrenmesine yardımcı olur.

Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...