sed Komutu ile Satır Silme: Numaraya, Desene veya Aralığa Göre İşlemler

Linux'ta sed komutunu kullanarak metin dosyalarından satırları nasıl hızlıca sileceğinizi öğrenin. Numaraya, desene veya satır aralıklarına göre filtreleme yöntemlerini keşfedin.

L
Linuxize
24 görüntülenme
sed Komutu ile Satır Silme: Numaraya, Desene veya Aralığa Göre İşlemler

Giriş

Metin dosyalarıyla çalışırken, yapılandırma dosyalarından yorum satırlarını temizlemek, log dosyalarındaki boş satırları kaldırmak veya veri setlerinden belirli aralıkları silmek gibi işlemler sıklıkla ihtiyaç duyulan görevlerdir. sed (stream editor), bu işlemleri dosyayı bir editörle açmadan, komut satırı üzerinden hızlıca yapmanızı sağlayan güçlü bir araçtır.

Temel Mantık

sed, girdiyi satır satır işler ve belirtilen komutları uygular. Varsayılan olarak sonuçları standart çıktıya (ekrana) yansıtır; orijinal dosyayı değiştirmez. Değişiklikleri kalıcı hale getirmek için -i (in-place) parametresi kullanılır.

Adım Adım Satır Silme Yöntemleri

  1. Belirli Bir Satırı Silme: 3. satırı silmek için şu komutu kullanın:
    sed '3d' dosya.txt
  2. Son Satırı Silme: Dosya uzunluğunu bilmeden son satırı silmek için $ karakteri kullanılır:
    sed '$d' dosya.txt
  3. Satır Aralığı Silme: 3 ile 6 arasındaki satırları silmek için:
    sed '3,6d' dosya.txt
  4. Desene Göre Satır Silme: İçinde 'hata' geçen tüm satırları silmek için:
    sed '/hata/d' dosya.txt
Uyarı: -i parametresini kullanmadan önce her zaman çıktıyı önizleyin. Yanlışlıkla veri kaybetmemek için sed -i.bak '...' dosya.txt komutu ile yedek alarak çalışmak en güvenli yöntemdir.

İleri Seviye Kullanım

sed ile sadece basit silme işlemleri değil, düzenli ifadeler (regex) kullanarak karmaşık filtrelemeler de yapabilirsiniz. Örneğin, sadece boş satırları değil, içinde sadece boşluk karakteri olan satırları da temizlemek için:

sed '/^[[:space:]]*$/d' dosya.txt

Birden fazla işlemi tek bir komutta birleştirebilirsiniz. Örneğin, hem yorum satırlarını silip hem de bir kelimeyi değiştirmek için:

sed '/^#/d; s/eski/yeni/g' dosya.txt

Sonuç

sed, metin işleme süreçlerinde vazgeçilmez bir yardımcıdır. Numaraya, desene veya aralığa dayalı silme işlemleri, otomasyon scriptlerinizde dosya temizliği yaparken size büyük zaman kazandırır. Daha karmaşık veri manipülasyonları için awk komutuna göz atmanız önerilir.

Kaynak

Linuxize