`sed` komutunu kullanarak birden çok satır nasıl değiştirilir

How Replace Multiple Lines Using Sed Command



Bazen bir dosyanın birden çok satırını belirli bir karakter veya metinle değiştirmeyi gerektirir. Bir dosyanın birden çok satırını değiştirmek için Linux'ta farklı komutlar bulunur. Bu tür görevleri yapmak için `sed` komutu bunlardan biridir. 'sed' tam biçimi Steam Editör'dür ve esas olarak metni normal bir ifade kullanarak farklı şekillerde okumak ve dönüştürmek için kullanılır. Bir dosyanın birden çok satırını farklı şekillerde değiştirmek için bu komutun nasıl kullanılabileceği bu öğreticide açıklanmıştır.

Yaygın olarak kullanılan `sed` Hile Sayfası:

`sed` komutunda en sık kullanılan karakterler aşağıdaki tabloda açıklanmıştır.







Karakter Amaç
ile İçerik eklemek için kullanılır.
B İçeriği dallandırmak için kullanılır.
C İçeriği değiştirmek için kullanılır.
NS Bir dosyanın bir satırını silmek için kullanılır.
NS Bir dosyanın ilk satırını silmek için kullanılır.
G Tutma metninden kopyalamak için kullanılır.
G Tutma metninden ekleme yapmak için kullanılır.
H Tutma metninde kopyalamak için kullanılır.
H Tutma metnine eklemek için kullanılır.
ben Eklemek için kullanılır.
ben Yedek satırı yazdırmak için kullanılır.
n Bir sonraki satıra geçmek için kullanılır.
n Bir sonraki giriş satırını eklemek için kullanılır.
P Yazdırmak için kullanılır.
P İlk satırı yazdırmak için kullanılır.
ne Bırakmak için kullanılır.
Q Hemen çıkmak için kullanılır.
r Dosyayı okumak için kullanılır.
r Dosyadan satırı okumak için kullanılır.
s Yerine geçmek için kullanılır.
T Yer değiştirmeyi test etmek için kullanılır.
T İkame olmadığını test etmek için kullanılır.
içinde Dosyaya yazmak için kullanılır.
İÇİNDE Dosyaya bir satır yazmak için kullanılır.
x Kalıpları değiştirmek ve tutmak için kullanılır.
ve Çevirmek için kullanılır.
İle birlikte Çizgiyi temizlemek için kullanılır.
'=' Satır numarasını yazdırmak için kullanılır.

Terminalden `sed` komutunu kullanarak birden çok satırı değiştirin:

Bu öğreticinin bu bölümünde, bir dosyadaki birden çok satırı terminalden değiştirmek için `sed` komutunun nasıl kullanılabileceği gösterilmektedir. adlı bir dosya oluşturun sed.txt aşağıdaki içerikle bu bölümün komutlarını test edin.



sed.txt



sed'in tam biçimi akış düzenleyicisidir.





Metni farklı bir biçimde okumak ve dönüştürmek için kullanılan bir Unix yardımcı programıdır.

Lee E. McMahon tarafından geliştirilmiştir.



Metin işleme için kullanılır.

Normal ifadeleri destekler.

Örnek-1: Ardışık İki Satırı Değiştirin

Aşağıdaki `sed` komutu, iki ardışık satırı başka bir satırla değiştirecektir. Burada -z seçeneği, değiştirme metnini eklemeden önce ardışık satırları boş verilerle değiştirmek için kullanılır. Komuta göre, 3rdve 4NSdosyanın satırları metinle değiştirilecektir, 'Çok kullanışlı bir araç' .

$kedised.txt
$sed -İle birlikte 's/Lee E. McMahon tarafından geliştirilmiştir. Metin için kullanılır
işleme./Çok kullanışlı bir araçtır./'
sed.txt

Komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Örnek-2: Eşleşme ve genel bayrağa göre birden çok satırı değiştirin

Aşağıdaki `sed` komutu, kelime ile başlayan tüm satırları değiştirecektir, 'Bilişim Teknoloji' sözüyle,' Bu satır değiştirilir '.

$kedised.txt
$sed 's/^It.*/Bu satır değiştirilir/g'sed.txt

Komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Üç satır ' kelimesini içerir Bilişim Teknoloji ' dosyanın içinde. Böylece, bu satırlar değiştirme metni ile değiştirilmiştir.

Örnek-3: Eşleşme ve sonraki satır komutuna göre birden çok satırı değiştirin

Aşağıdaki 'sed' komutu, sözcüğün yerini alacak,' NS ' sözüyle,' NS ' sonraki satır komutuyla, 'n'.

$kedised.txt
$sed ' {n;/is/ {s/is/es/}}'sed.txt

Komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Buraya, 'NS' 2'de varndve 4NSdosyanın satırları ve bu satırlar kelime tarafından değiştirilir 'NS' .

'sed' komut dosyasını oluşturarak birden çok satırı değiştirin:

Önceki örneklerde, `sed` komutları terminalden yürütülmüştür. Ancak bu bir betik dilidir ve betik birden çok ifade içeriyorsa, betikle bir sed dosyası oluşturmak daha iyidir. adlı bir metin dosyası oluşturun. öğrenciler.txt 'sed' betiğinin uygulanacağı aşağıdaki içerikle.

öğrenciler.txt

Kimlik: 111045
isim: Robert
Departman: ÖAM
Parti: 35

Kimlik: 111876
isim: Yusuf
Departman: BBA
Parti: 27

Kimlik: 111346
isim: William
Departman: ÖAM
Parti: 45

Kimlik: 111654
İsim: Charles
Bölüm: EEE
Parti: 41

Kimlik: 111346
isim: John
Departman: ÖAM
Parti: 25

Kimlik: 111746
İsim: Thomas
Departman: ÖAM
Parti: 15

Örnek-4: sed komut dosyası kullanarak bir dosyanın birden çok satırını değiştirin

adlı bir sed dosyası oluşturun. replace.sed arama düzenine göre birden çok satırı değiştirmek için aşağıdaki içerikle. Burada, 'kelimesi ÖAM Metin dosyasında ' aranacak ve eşleşme varsa, yine 35 ve 15 numaralarını arayacaktır. Dosyada ikinci eşleşme varsa, 45 numara ile değiştirilecektir.

replace.sed

/ÖAM/ {
p;n;
/35/ {
s/35/Dört beş/;
p;d;
}
/on beş/ {
s/on beş/55/;
p;d;
}
}
P;

Dosyanın mevcut içeriğini kontrol etmek için aşağıdaki komutu çalıştırın. Metin dosyasında 'ÖAM' dört kez göründü. 35 ve 15 iki yerde var.

$kediöğrenciler.txt

Aşağıdaki komut, sed komut dosyasına dayalı olarak birden çok satırın içeriğini değiştirecektir.

$sed -n -Freplace.sed öğrenciler.txt

Komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Çözüm

Bu öğreticide, birden çok satırı veya birden çok satırın içeriğini 'sed' komutunu kullanarak değiştirmenin farklı yolları gösterilmiştir. Bir sed dosyasından 'sed' betiğinin nasıl yürütülebileceği de bu eğitimde gösterilmektedir. Umarım bu eğitim, okuyucunun 'sed' komutunu kullanarak herhangi bir dosyanın birden çok satırını değiştirmesine yardımcı olur.