Linux'un kullanışlı ve güçlü komutlarından biri sed komutudur. Bu komut, eşleşmeye göre belirli bir metni veya satırı eklemek, güncellemek ve silmek gibi Linux'ta farklı türde görevleri gerçekleştirmek için kullanılır. sed komutunu kullanarak bir dizeye veya dosyaya farklı şekillerde metin ekleyebilirsiniz.
Bu öğreticide, bir dizede veya satırda bir eşleşme bulduktan sonra bir satırın nasıl ekleneceği gösterilmektedir.
Dizeye bir satır ekle
Komutta tanımlanan desen, dize değerinin herhangi bir kısmıyla eşleşirse, sed komutu kullanılarak herhangi bir dize değerinden sonra yeni bir satır eklenebilir.
Aşağıdaki örnek, dize değerinde herhangi bir yerde belirli bir dize varsa, bir dize değerinden sonra yeni bir satırın nasıl eklenebileceğini gösterir.
Örnek-1: Bir eşleşme bulduktan sonra bir dizeye bir satır ekleyin
Aşağıdaki komut dizide arama yapacak, programlamayı seviyorum ve bir metin satırı, Programlamayı sever misiniz? arama dizesi varsa, dizeden sonra eklenecektir.
Burada & karakteri, dizeden sonra satırı eklemek için kullanılır.
$dışarı attı 'Programlamayı severim.' | sed 's / inng / & Programlamayı sever misiniz? / 'Aşağıdaki çıktı, dizede inng bulunmadığını ve dizeden sonra hiçbir satır eklenmediğini gösterir.
Aşağıdaki komut arama yapacaktır. dizide programlamayı seviyorum ve dizide var.
Aşağıdaki çıktı, dizeden sonra yeni satırın eklendiğini gösterir.
Dosyaya bir satır ekle
Aşağıda belirtilen bir dosyada bir eşleşme bulunduktan sonra satır eklemenin iki yolu vardır. -i seçeneği olmadan sed komutu kullanıldığında, dosyanın içeriği değişmeden kalır ve çıktı, eklenen yeni satırla dosya içeriğini gösterir. Dosyada eşleşen desen varsa, yeni satırı dosyaya kalıcı olarak eklemek için -i seçeneğini sed komutuyla birlikte kullanmanız gerekir.
A. sed komutunda a kullanma
a, arama düzeninin eşleştiği satırdan sonra veya belirli bir satır numarasından sonra bir dosyaya bir veya daha fazla satır eklemek için sed'nin arama kalıbında kullanılabilir.
B. sed komutunda i kullanma
i, arama düzeninin eşleştiği satırdan önce bir dosyaya bir veya daha fazla satır eklemek için sed komutunun arama kalıbında kullanılabilir.
Desene göre bir dosyaya satır(lar) ekleyin:
adlı sekmeyle ayrılmış bir metin dosyası oluşturun. ürünler.txt sed komutunda yukarıdaki bayrağın kullanımlarını göstermek için aşağıdaki içerikle.
ürünler.txt
Kimlik Adı01 krem şanti
02 Kakao Tozu
03 Şeker
04 Yumurta
05 Un
Örnek-2: a'yı kullanarak belirli bir satır numarasından sonra bir satır ekleyin.
Aşağıdaki komutlar, sed komutunda kullanılan kalıba dayalı olarak, products.txt dosyasının belirli bir satır numarasından sonra yeni bir satırın nasıl eklenebileceğini gösterir.
Burada, ilk komut dosyanın mevcut içeriğini gösterecektir. sed komutu, dosyanın ilk iki satırından sonra b01 Kabartma tozu metnini ekler. Son komut, dosya içeriğinin değişip değişmediğini kontrol etmek için kullanılır.
$kediürünler.txt$sed '2 b01 Kabartma tozu'ürünler.txt
$kediürünler.txt
Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.
Örnek-3: a'yı kullanarak son satırdan sonra bir satır ekleyin.
Aşağıdaki komut, dosyanın son satırından sonra yeni bir satır eklemenin yolunu gösterir. İlk ve son komut, sed komutunun yürütülmesinden önce ve sonra dosyanın mevcut içeriğini gösterir. $ sembolü, dosyanın son satırından bahsetmek için sed komutunun kalıbında kullanılır.
$kediürünler.txt$sed '$ b01 Kabartma tozu'ürünler.txt
$kediürünler.txt
Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.
Örnek-4: a kullanarak bir desen eşleştirdikten sonra dosyanın herhangi bir yerine bir satır ekleyin.
Aşağıdaki sed komutu, eşleşen desene göre dosyanın herhangi bir yerine nasıl yeni bir satırın eklenebileceğini gösterir. sed komutunda kullanılan kalıp, s01 ile başlayan herhangi bir satırı arayacak ve ondan sonra yeni dizeyi ekleyecektir. Dosyanın dördüncü satırı s01 ile başlar ve yeni satır bu satırdan sonra eklenecektir.
$kediürünler.txt$sed '/^s01.*/a b01 Kabartma Tozu'ürünler.txt
$kediürünler.txt
Komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.
Aşağıdaki sed komutu Powder ile biten herhangi bir satırı arayacak ve yeni satırı ondan sonra ekleyecektir. Dosyanın üçüncü satırı Powder ile biter. Böylece, yeni satır bu satırdan sonra eklenecektir.
$sed '/Toz$/a b01 Kabartma Tozu'ürünler.txt
$kediürünler.txt
Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.
Örnek-5: Eşleşen desenden sonra bir
Aşağıdaki sed komutu, eşleşen desene göre bir dosyanın içeriğine birden çok satır eklemenin yolunu gösterir.
Burada, kalıba göre üçüncü satırdan sonra iki satır eklenecektir.
$kediürünler.txt$sed '/^[a-c]/a b01 Kabartma Tozu b02 Kabartma Soda'ürünler.txt
$kediürünler.txt
Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.
Örnek-6: I düğmesini kullanarak bir desen eşleştirdikten sonra bir satır ekleyin.
$kediürünler.txt$sed '/krem/i b01 Kabartma Tozu'ürünler.txt
$kediürünler.txt
Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.
Örnek-7: -i seçeneğini kullanarak eşleşen desenden sonra kalıcı olarak bir satır ekleyin
Aşağıdaki sed komutu, dosyanın içeriğinin kalıcı olarak nasıl değiştirileceğini gösterir. i seçeneği, sed komutuyla birlikte, desene göre dosyaya yeni bir satır eklemek için kullanılır.
$kediürünler.txt$sed -ben '/e$/a g01 Ghee'ürünler.txt
$kediürünler.txt
Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.
Çözüm:
Desenli sed komutunu kullanarak bir dosyaya iki veya daha fazla satır eklemenin yolları, bu öğreticide, okuyucunun desene bağlı olarak geçici veya kalıcı olarak satır eklemek için bu komutu uygulamasına yardımcı olmak için gösterilmiştir.