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 sedbunu 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}
sedLinux'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, sedsı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