Not: Bir dosyadaki dizgiyi değiştirmek için sed komutunun kullanımını göstermek için Linux Mint 20 kullanacağız. Dilerseniz başka herhangi bir Linux çeşidini de kullanabilirsiniz.
sed Komutunun Kullanımı:
Şimdi size Linux'ta sed komutunun kullanımını gösteren çok ilginç örnekler göstereceğiz. Bu komutun farklı senaryolarda nasıl çalıştığını görelim.
Gösteri için Metin Dosyası Oluşturma:
sed komutunun kullanımını göstermek için bir metin dosyası ile çalışmak istiyoruz. Ancak, bir Bash dosyası veya istediğiniz başka bir dosya bile oluşturabilirsiniz. İkinci olarak, bu dosyaya erişirken herhangi bir karmaşık yol belirtmek zorunda kalmamak için dosyayı Home dizininde oluşturacağız. Bir metin dosyası oluşturmak için aşağıdaki adımlar gerçekleştirilmelidir:
Linux Mint 20 görev çubuğunuzda bulunan Dosya Yöneticisi simgesine tıklayın:
Şimdi, orada herhangi bir yere sağ tıklayarak ve ardından basamaklı menüden Yeni Belge seçeneğini ve alt basamaklı menüden Boş belge seçeneğini seçerek Ana dizinde yeni bir metin dosyası oluşturun. Metin dosyası oluşturulduktan sonra ona uygun bir ad verin. Bu özel örnek için onu sed olarak adlandırdım.Txt.
Açmak için bu dosyaya çift tıklayın ve aşağıdaki resimde gösterildiği gibi herhangi bir rastgele metin yazın. Bu metin dosyasını Ctrl +S tuşlarına basarak kaydedin ve ardından kapatın.
Şimdi terminali aşağıdaki resimde gösterildiği gibi Linux Mint 20'de başlatın:
Terminali Linux Mint 20'de başlattıktan sonra aşağıda belirtilen tüm örnekleri tek tek inceleyebilirsiniz.
Verilen Bir Sözcüğün tüm Tekrarlarını değiştirmek için sed Komutunu kullanma:
Bir metin dosyasında belirli bir kelimenin tüm oluşumlarını değiştirmek için sed komutunu kullanabilirsiniz. Bu hedefe ulaşmanın sözdizimi aşağıda belirtilmiştir:
$ sed 's/sed/FindWord/ReplaceWord/' dosyası.TxtBurada, FindWord'ü değiştirmek istediğiniz kelimeyle ve ReplaceWord'ü değiştirilecek kelimeyle değiştirmeniz gerekir. Ayrıca, "file" yerine bu değişiklikleri yapmak istediğiniz dosyanın adını da yazmanız gerekir. Bu senaryoda, FindWord'ü sed ile ve ReplaceWord'ü replace ile değiştirdim. Dosya adımız sed.Txt. Aşağıdaki resimde de gösterilmiştir:
Bu komutun başarılı bir şekilde yürütülmesi, bu komutun terminalinizde çalıştırılması nedeniyle meydana gelen değişiklikleri size gösterecektir:
Her Satırda Verilen Bir Sözcüğün n'inci Oluşumunu değiştirmek için sed komutunu kullanma:
Yukarıdaki senaryo en basit değiştirme senaryosuydu, ancak bazen bir kelimenin tüm tekrarlarını değiştirmek istemezsiniz, bunun yerine o kelimenin tüm satırlarda sadece birinci, ikinci veya n. tekrarını değiştirmek istersiniz. Bunu yapmak için aşağıdaki komutu uygulayabilirsiniz:
$ sed 's/FindWord/ReplaceWord/num' dosyası.TxtBurada, FindWord'ü değiştirmek istediğiniz kelimeyle ve ReplaceWord'ü değiştirilecek kelimeyle değiştirmeniz gerekir. Ayrıca, "file" yerine bu değişiklikleri yapmak istediğiniz dosyanın adını da yazmanız gerekir. Bu senaryoda, FindWord replace ve ReplaceWord'ü sed ile değiştirdim. Dosya adımız sed.Txt. Ayrıca, num, değiştirilecek kelimenin oluşumunu veya konumunu ifade eder. Gösterilen örnekte, aşağıdaki resimde gösterildiği gibi her satırda ilk değiştirme yerini sed ile değiştirmek istiyorum:
Bu komutun başarılı bir şekilde yürütülmesi, bu komutun terminalinizde çalıştırılması nedeniyle meydana gelen değişiklikleri size gösterecektir:
Belirli Bir Satırda Verilen Bir Kelimeyi değiştirmek için sed komutunu kullanma:
Bazen belirli bir sözcüğü belgenin tamamında değil, yalnızca belirli bir satırda değiştirmek istersiniz. Bunu yapmak için, aşağıdaki komutta belirli bir satır numarasını açıkça belirtmeniz gerekir:
$ sed 'LineNum s/FindWord/ReplaceWord/' dosyası.TxtBurada, FindWord'ü değiştirmek istediğiniz kelimeyle ve ReplaceWord'ü değiştirilecek kelimeyle değiştirmeniz gerekir. Ayrıca, "file" yerine bu değişiklikleri yapmak istediğiniz dosyanın adını da yazmanız gerekir. Bu senaryoda, FindWord sed ve ReplaceWord'ü replace ile değiştirdim. Dosya adımız sed.Txt. Ayrıca, LineNum'u değiştirmek istediğiniz satırın satır numarasıyla değiştirmeniz gerekir. Bu örnekte, aşağıdaki resimde gösterildiği gibi dosyamızın 2. satırındaki sed yerine replace ile değiştirmek istedik:
Bu komutun başarılı bir şekilde yürütülmesi, bu komutun terminalinizde çalıştırılması nedeniyle meydana gelen değişiklikleri size gösterecektir. Söz konusu değişikliklerin tüm metinde değil, sadece dosyamızın 2. satırında gerçekleştiğini kolaylıkla doğrulayabilirsiniz.
Sonuç:
Bir dosyadaki herhangi bir kelimeyi değiştirme ihtiyacı hissettiğinizde, yapmanız gereken ilk şey, özel gereksiniminizi belirlemektir.e. dosyanın tamamında o belirli kelimeyi değiştirmek mi yoksa o belirli kelimenin belirli bir oluşumunu değiştirmek mi yoksa o kelimeyi belirli bir satırda değiştirmek mi istiyorsunuz?. Kendi senaryonuzu belirledikten sonra, bu makalede ele alınan örneklerden o belirli yöntemi kullanabilirsiniz.