FreeBSD çalıştıran paylaşılan bir barındırma olan sunucum için kabuk komut dosyaları yazıyorum. Ayrıca bilgisayarımda Linux çalıştıran bilgisayarımda bunları yerel olarak test edebilmek istiyorum. Dolayısıyla, onları taşınabilir bir şekilde yazmaya çalışıyorum, ancak sed
bunu yapmanın bir yolunu göremiyorum.
Web sitemin bir kısmı oluşturulan statik HTML dosyaları kullanıyor ve bu sed satırı her rejenerasyondan sonra doğru DOCTYPE ekliyor:
sed -i '1s/^/<!DOCTYPE html> \n/' ${file_name.html}
sed
Linux'ta GNU ile çalışır , ancak FreeBSD , yedek kopya için bir uzantı olmak sed
üzere ilk argümanı bekler -i
. Bu nasıl göründüğü:
sed -i '' '1s/^/<!DOCTYPE html> \n/' ${file_name.html}
Ancak, sed
sırayla GNU ifadenin hemen sonra gelmesini bekliyor -i
. (Ayrıca yeni satır işleme ile düzeltmeler gerektirir, ancak bu zaten burada cevaplanmıştır )
Tabii ki bu değişikliği betiğin sunucu kopyasına ekleyebilirim, ancak VCS'yi sürüm için kullanmam karışıklık getirebilir. Tamamen taşınabilir bir şekilde sed ile bunu başarmanın bir yolu var mı?
-i