sed ve execute
Örnekte sed komutu s ile substitude yaptıktan sonra çıktı /e verildiği için çalıştırılıyor.
sed ve delete
sed substitude s/a/b/g şeklinde çalışıyor. Delete ise /a/,/b/d şeklinde çalışıyor. Aradaki virgüle dikkat!
Blokları şeklinde silmek için örnek. History kelimesini içeren ilk satır ile Date kelimesini içeren ilk satır bloğu silinir.
sed ve substitude
substitute ve ayraç
sed komutunda substitude için kullanılan örüntü şu şekilde. s harfinden sonra gelen ilk karakter ayraç (delimeter) olarak algılanıyor. İlk ayraçtan sonra gelen düzenli ifade aranılan şey, ikinci ayraçtan sonra gelen kelime ise yer değiştirmesi istenen değer. Ayraç olarak aranan ifade içinde olmayan herhangi bir karakter kullanılabilir.
Ayraç olarak pipe kullanımı
Basit bir örnek
test kelimesini real ile değiştirme
Satırdaki tüm eşleşmeleri silmek
Örnek:
Aranan şey 3 veya 4'ü takip eden : karakteri ile başlayan bir kelime.
\b ile word boundary ile başlaması sağlanır \S ile non-space ile devam etmesi ve daha sonra \s ile boşluk ile devam etmesi sağlanır. Eşleşme sağlayan bir örnek 3:11 olabilir.
Örnekte sed komutu s ile substitude yaptıktan sonra çıktı /e verildiği için çalıştırılıyor.
echo AAA | sed -r 's/A/echo B/ge'
Komut aslında şuna denkecho AAA | sed -r 's/A/echo B/g' | sh
sed ve delete
sed substitude s/a/b/g şeklinde çalışıyor. Delete ise /a/,/b/d şeklinde çalışıyor. Aradaki virgüle dikkat!
Blokları şeklinde silmek için örnek. History kelimesini içeren ilk satır ile Date kelimesini içeren ilk satır bloğu silinir.
$ sed -i '/History/,/Date/d' file
History kelimesinden sonra gelen 5 satırı silmek için şöyle yapılır
$ find . -print0 -name *.h | xargs -0 sed -i '/History/{N;N;N;N;N;d;}' file
substitute ve ayraç
sed komutunda substitude için kullanılan örüntü şu şekilde. s harfinden sonra gelen ilk karakter ayraç (delimeter) olarak algılanıyor. İlk ayraçtan sonra gelen düzenli ifade aranılan şey, ikinci ayraçtan sonra gelen kelime ise yer değiştirmesi istenen değer. Ayraç olarak aranan ifade içinde olmayan herhangi bir karakter kullanılabilir.
Ayraç olarak pipe kullanımı
sed -i "s|$line|$line_new|g" /etc/myconfig
Ayraç olarak yüzde karakterinin kullanımısed -i "s%$line_old%$line_new%g" /etc/myconfig
Ayraç olarak diyez kullanımısed -i "s#DONEDIRECTORY#$DoneDirectory#" *TestFile*
substitude - yer değiştirme amaçlıBasit bir örnek
test kelimesini real ile değiştirme
find . - name "*.cpp" | xargs sed -i "s/test/real"substitude - silme amaçlı
Satırdaki tüm eşleşmeleri silmek
Örnek:
Aranan şey 3 veya 4'ü takip eden : karakteri ile başlayan bir kelime.
\b ile word boundary ile başlaması sağlanır \S ile non-space ile devam etmesi ve daha sonra \s ile boşluk ile devam etmesi sağlanır. Eşleşme sağlayan bir örnek 3:11 olabilir.
sed 's/\b[34]:\S*\s*//g' file
Satırdaki Belirli Bir Eşleşmeyi Silmek
$ sed 's/,//g2' file
Hiç yorum yok:
Yorum Gönder