Sed Yeni Satırı Boşlukla Değiştir

Sed Yeni Satiri Boslukla Degistir



UNIX/Linux'ta sed komutu, akışları düzenlemek için özel bir araçtır. Bir metin akışı üzerinde arama, bulma ve değiştirme ve ekleme/silme gibi çeşitli işlemleri gerçekleştirebilir. Bununla birlikte, çoğunlukla, metin içeriğini bulmak ve değiştirmek için sed kullanılır.

Bu kılavuzda, sed kullanarak yeni satırları boşlukla değiştirmeyi göstereceğiz.

Metni Değiştirmek için sed kullanma

İlk olarak, sed kullanarak temel bul ve değiştir işlemini gerçekleştirmeye hızlıca bakalım. Aynı yöntem, yeni satırları bazı ek seçeneklerle boşluklarla değiştirirken kullanılacaktır. Komut yapısı aşağıdaki gibidir:







$ sed -e 's///'

Aşağıdaki komuta bir göz atın:



$ echo 'hızlı kahverengi tilki' | sed -e 's/hızlı/hızlı/g'



echo komutu, dizeyi yazdırır. STDOUT . STDOUT akışı daha sonra borulu sed için. sed'e, değiştirilecek herhangi bir hızlı örneğini hızlı ile değiştirmesi talimatını verdik. Son olarak çıktı ekrana yazdırılır.





Yeni Satırları Boşlukla Değiştirme

Gösteri için, birkaç boş içerikle aşağıdaki test.txt metin dosyasını oluşturdum:

$ kedi testi.txt



sed komutu, çeşitli kalıpları tanımlamak için normal ifadeleri kabul eder. Bu özellikten yararlanarak yeni satırı \n olarak tanımlayacağız. Yeni satırları boşlukla değiştirmeyi deneyelim:

$ sed -e 's/\n/ /g' test.txt

Ancak, bu beklendiği gibi çalışmadı. Bu hedefe ulaşmak için bazı ek seçeneklere ihtiyacımız var. Aşağıdaki komuta bir göz atın:

$ sed -e ':a;N;$!ba;s/\n/ /g' test.txt

sed komutunun birden çok bölümü vardır; her biri belirli bir görevi belirtir:

  • :a: Bir 'a' etiketi oluşturur
  • N: Desen alanına bir sonraki satırı ekler
  • $!ba: Son satır değilse, 'a' etiketine döner
  • s/\n/ /g: Yeni satırı (\n) bulur ve boşlukla (/ /) değiştirir. Model global olarak eşleştirilir (/g)

sed komutu, tüm \n karakterlerini boşlukla değiştirerek son satıra ulaşana kadar adımlar arasında döner.

Bu karmaşık komut yerine, boş ile ayrılmış kayıtlarla çalışmak için sed'i belirten -z bayrağını kullanarak işleri basitleştirebiliriz. Komut şöyle görünecektir:

$ sed -z -e 's/\n/ /g' test.txt

Alternatif yöntemler

sed görevi gayet iyi yapabilirken, bazı alternatif araçlar da var. Bu bölümde, bunlardan birkaçını kısaca inceleyeceğiz.

Aşağıdaki örnekte, yeni satırı boşlukla basit bir şekilde değiştirmek için tr komutunu kullanabiliriz:

$ tr '\n' ' < test.txt

İşi yapmak için perl de kullanabiliriz. Aşağıdaki sözdizimi de sed ile kullandığımıza benzer (ancak basitleştirilmiş):

$ perl -p -e 's/\n/ /' test.txt

Yeni satırları boşlukla değiştirmenin başka bir yolu da yapıştır komutunu kullanmaktır. Yalnızca bir karakteri kaldırabileceğini unutmayın:

$ yapıştır -s -d ' ' test.txt

sed'e benzer şekilde, Linux başka bir awk aracıyla birlikte gelir. sed'e benzer şekilde, girişte bazı gelişmiş değiştirmeler de yapabilir. Amacımız için aşağıdaki awk komutunu kullanın:

$ awk 1 ORS=' ' test.txt

Çözüm

Bu kılavuz, sed kullanarak yeni satırı boşlukla nasıl değiştirebileceğimizi araştırdı. İki farklı şekilde elde edildi. Bu kılavuz ayrıca yeni satırı boşlukla değiştirmek için kullanabileceğimiz diğer ilgili araçları da içerir.

Ezberlemesi zor karmaşık komutlar kullanmak yerine, Linux'ta pek çok şeyi gerçekleştirmek için Bash betiklerini kullanıyoruz. Bir miktar performans pahasına gelse de, esneklik ve kullanılabilirlik buna değer. Hakkında daha fazla öğren Yeni başlayanlar için Bash komut dosyası .