Maçtan Sonra `sed` Kullanarak Satır Nasıl Eklenir?

How Insert Line After Match Using Sed



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.

$dışarı attı 'Programlamayı severim.' | sed 's/ing./& Programlamayı sever misiniz?/'

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.

$kediürünler.txt

$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.