Linux terminalinde metin bulmanın ve değiştirmenin 3 yolu, aşağıdaki adımlar ile ilerleme sağlayabilirsiniz.
Bir yapılandırma dosyasını düzenlemek veya her satırı elle inceleyerek büyük bir belgeyi güncellemek çok zaman alabilir. Ancak sed, awk, Vim ve diğerleri gibi komut satırı araçlarıyla arama ve değiştirme sürecini hızlı ve verimli hale getirebilirsiniz.
Linux Terminalinde Metin Bulmanın ve Değiştirmenin 3 Yolu Yöntemleri
Linux terminalinde metin bulmanın ve değiştirmenin 3 Yolunu sizin için anlatmaya çalıştık.
sed Komutunu Kullanın
Hızlı metin değiştirmeleri mi istiyorsunuz? sed komutunu kullanın. Sed ile dosyalardaki metni arayabilir ve değiştirebilir, basit değiştirmelerden karmaşık metin düzenlemelerine kadar her şeyi halledebilirsiniz.
Diyelim ki example.txt adında “Linux” kelimesini içeren bir dosyanız var ve bunu “Windows” ile değiştirmeye karar verdiniz.
Bunu yapmak için şunu çalıştırın:
sed ‘s/Linux/Windows/g’ örnek.txt
Burada s bayrağı ikame anlamına gelir ve g bayrağı sed’in her satırdaki tüm desen oluşumlarını ikame etmesine izin verir.
Önceki komut orijinal dosyayı doğrudan değiştirmez; yalnızca terminalde değiştirilen çıktıyı gösterir. Ancak, orijinal dosyayı doğrudan değiştirmek istiyorsanız, -i bayrağını kullanın.
sed -i ‘s/Linux/Windows/g’ örnek.txt
-i bayrağı yalnızca çıktıyı görüntülemek yerine değişiklikleri doğrudan dosyada yapar.
Değişiklik yapmadan önce dosyanızı yedeklemek mi istiyorsunuz? -i bayrağına bir uzantı ekleyin:
sed -i.bak ‘s/Linux/Windows/g’ örnek.txt
Herhangi bir değişiklik yapmadan önce example.txt.bak adında bir yedekleme dosyası oluşturulur.
Peki ya orijinal dosyanızın değişmeden kalmasını istiyorsanız? Yeni bir dosya oluşturabilir ve değiştirilmiş çıktıyı yönlendirme operatörünü kullanarak oraya kaydedebilirsiniz.
Örneğin, çıktıyı ayrı bir dosyaya göndermek için şunu kullanın:
sed ‘s/Linux/Windows/g’ örnek.txt > dosya.txt
Sed ile karmaşık regex desenleri kullanmak, tekrarlayan içeriklere sahip daha büyük dosyalarda neyin değiştirileceği konusunda kontrol sahibi olmanızı sağlar. Birden fazla örneği tek bir komutla değiştirmek için şunu çalıştırın:
sed -i ‘s/Linux\|Ubuntu/Windows/g’ örnek.txt
Sed ile sıklıkla kullandığım bir numara, arama veya değiştirme dizelerim eğik çizgiler içeriyorsa farklı bir ayırıcıya geçmektir. Örneğin, dosya yollarıyla çalışırken ayırıcı olarak @ sembolünü kullanmayı severim:
sed ‘s@eski/yol@yeni/yol@g’ dosyası.txt
Bu, komutun okunmasını kolaylaştırır ve çok sayıda kaçış karakterine olan ihtiyacı ortadan kaldırır.
Linux Terminalinde Metin Bulmanın ve Değiştirmenin 3 Yolu Nedir:
awk Komutunu Kullanarak Metni Değiştirin
Sed gibi awk da basit ila gelişmiş metin düzenlemeleri gerçekleştirir. Genellikle yapılandırılmış verileri işlemek için awk kullanırım, özellikle de seçili alanlarda hesaplamaların gerekebileceği CSV dosyalarında.
awk yapılandırılmış verileri yönetmek için iyi bilinse de, hızlı bul ve değiştir görevleri için de etkilidir. Örneğin, bir dosyadaki belirli metni değiştirmek için şunları kullanabilirsiniz:
awk ‘{gsub(/Windows/, “Linux”); print}’ dosya.txt > yeni_dosya.txt
Burada, gsub işlevi dosyadaki her satırda “Windows”un her örneğini “Linux” ile değiştirerek genel bir ikame gerçekleştirir. awk dosyaları doğrudan değiştirmediğinden, değişiklikleri yakalamak için çıktıyı new_file.txt’ye yönlendiririz.
Ayrıca, ekstra biçimlendirmenin veri işlemeyi karmaşıklaştırabileceği elektronik tablolardan veri dışa aktarımlarını temizlemek için awk kullanıyorum. Birçok elektronik tablo dışa aktarımı, diğer uygulamalarda veri işlemeyi bozabilecek değerlerin etrafında tırnak işaretleri içerir.
Bir CSV dosyasının ilk sütunundaki tüm çift tırnak işaretlerini şu komutu kullanarak kaldırabilirsiniz:
awk -F, ‘{gsub(/”/, “”, $1); print}’ data.csv > temizlenmiş_veriler.csv
Burada gsub yalnızca ilk sütundaki tüm çift tırnak işaretlerini kaldırır ve çıktı daha sonraki kullanımlar için cleaning_data.csv dosyasına yönlendirilir.
Linux Terminalinde Metin Bulmanın ve Değiştirmenin 3 Yolu Adımlar;
Metni Vim Ex Moduyla Değiştirin
Tam düzenleyiciyi açmadan hızlı metin dönüşümleri mi istiyorsunuz? Komut satırından doğrudan bul ve değiştir işlemlerini gerçekleştirmenize olanak tanıyan Ex moduna sahip bir metin düzenleyicisi olan Vim’i (Vi Improved) deneyin.
Başlamak için dosyanızı Vim ile açın:
vim dosyaadı.txt
Daha sonra, Esc tuşuna basarak Ex moduna girin ve (:) tuşunu kullanın. Bu, terminalin alt kısmında iki nokta üst üste (:) ile Ex modunda olduğunuzu belirten bir uyarı verecektir. Metni bulmak ve değiştirmek için şu komutu kullanın:
:%s/macOS/Linux/g
Bu komut, tüm dosya boyunca “macOS” ifadesinin tüm örneklerini “Linux” ile değiştirir. % sembolü, komutun tüm dosyaya uygulanması gerektiğini belirtir ve sondaki g bayrağı, yalnızca ilk satırın değil, her satırdaki tüm örneklerin değiştirilmesini sağlar.
Her satırdaki yalnızca ilk örneği değiştirmek için g işaretini atlayın:
:%s/macOS/Linux/
Belirli bir satır aralığındaki metni değiştirmeniz mi gerekiyor? Satır aralığını belirtin. Örneğin, 3. satırdaki metni 10. satıra değiştirmek için:
:3,10sn/macOS/Linux/g
Dosya değişiklikleri yaparken uyguladığım bir alışkanlık, her bir değişimi onaylamaktır. Bu yaklaşım dikkatli, satır satır düzenlemelere olanak tanır.
Her değiştirme işleminde bir istem almak için komutun sonuna c ekleyin:
:%s/macOS/Linux/gc
Linux terminalinde metin bulmanın ve değiştirmenin 3 yolu, makalemiz umarım yararlı olmuştur.