sed

sed Dosyadaki Bir Dizeyi Değiştirme Komutu

sed Dosyadaki Bir Dizeyi Değiştirme Komutu
Herhangi bir dosya türüyle çalışırken, sözcükleri bulup değiştirerek bu dosyalarda değişiklik yapmak çok yaygın bir uygulamadır. Metin editörlerinin çoğu, bu değişiklikleri gerçekleştirmek için farklı GUI tabanlı yöntemler sağlar. Ancak bazen, bir dosyadaki kelimeleri terminal aracılığıyla bulmanın ve değiştirmenin bir yoluna ihtiyacınız vardır. Bu nedenle, bu makalede, bir metin dosyasındaki bir dizeyi değiştirmek için sed komutunu kullanma yönteminde size yol göstereceğiz. Bu komutun kullanılabileceği farklı senaryolara da ışık tutacağız.

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ı.Txt

Burada, 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ı.Txt

Burada, 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ı.Txt

Burada, 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.

Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...