Linux sed komutu nasıl kullanılır – Bul ve Değiştir nasıl yapılır

Linux sed komutu string bazlı dosyalarımızda bul ve değiştir işlemi yapmamızı sağlar. Linux komut satırında find and replace olarak da bilenen bu işlemin nasıl yapıldığına bakalım. sed komutu için bir çok örnek hazırladık onları inceleyelim:

Sed her Ubuntu, Centos dahil olmak üzere her linux dağıtımda dahili olarak bulunan hatta BSD bazlı FreeBSD ve MacOS versionlarında da yer alan temel bir unix string değiştirme aracıdır. Sed’in açılımı string editor’tür. Kullanımı hem basit bir araçtır. Örnek olarak file.txt isimli içeriği basit bir dosya oluşturalım.

sed komutu örnekleri ile bul ve değiştir nasıl yapılır

Örnek bir dosya oluşturarak komut satırından bul ve değiştir nasıl yapılır bakalım. Örnek bir file.txt oluştalım.

nano file.txt
111
222
333
111 222

Nano’dan çıkmak için CTRL-X kısayolunu kullanıyourz. Bu dosyadaki 111 ifadelerini 444 ile değiştirilmiş halde ekrana basmak için sed kullanan şu komututlardan birini kullanabiliriz:

cat file.txt | sed 's/111/444/'
sed 's/111/444/' file.txt

ilk komutta linux pipe operatoru kullanarak sed’e dosyayı stdin üzerinden verdik. İkinci komutta ise dosya ismi ile sed’in bu dosyayı açıp görüntülemesini sağladık. İki yöntemi de sed desteklemektedir. Bu aşamada dosyanın içeriğinin değişmediğini sadece ekrana yazma işlemi yaptığımızı tekrar söyleyelim. cat komutu ile file.txt dosyasını tekrar ekrana bastırırsak içeriğin değişmediğini göreceğiz:

sed komutunun kendi alt komutları olduğunu da belirtelim. sed 's/111/444/' ifadesinde baştan yer alan s ifadesi substitute işlemi yapmamızı sağlıyor. Şu haliyle her satırda yalnız tek bir ifadeyi değiştiriyor. Eğer komutunun sonuna g yani global ifadesini kullanırsak her satırdaki tüm ifadeleri değiştirmiş oluruz.

sed 's/111/444/g' file.txt

Dosyaya kayıt işlemi hala yapmıyoruz. Bunun için yine linux pipelarından yararlanabileceğimiz gibi -i yani inline parametresini de kullanabiliriz.

sed 's/111/444/g' file.txt > yenidosya.txtsed -i 's/111/444/g' file.txt

sed in düzenli ifadeler yani regular expressions desteği de bulunuyor. Kelimeleri birebir vermek yerine * . $ ^ gibi gibi düzenli ifade araçlarından yararlanabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir