Sto scrivendo script shell per il mio server, che è un hosting condiviso con FreeBSD. Voglio anche essere in grado di testarli localmente, sul mio PC con Linux. Quindi, sto provando a scriverli in modo portatile, ma con sed
non vedo alcun modo per farlo.
Parte del mio sito Web utilizza file HTML statici generati e questa linea sed inserisce DOCTYPE corretto dopo ogni rigenerazione:
sed -i '1s/^/<!DOCTYPE html> \n/' ${file_name.html}
Funziona con GNU sed
su Linux, ma FreeBSD si sed
aspetta che il primo argomento dopo l' -i
opzione sia l'estensione per la copia di backup. Ecco come sarebbe:
sed -i '' '1s/^/<!DOCTYPE html> \n/' ${file_name.html}
Tuttavia, GNU sed
a sua volta si aspetta che l'espressione segua immediatamente dopo -i
. (Richiede anche correzioni con la gestione di newline, ma è già stata fornita una risposta qui )
Ovviamente posso includere questa modifica nella copia del mio server dello script, ma ciò rovinerebbe il mio uso di VCS per il controllo delle versioni. C'è un modo per raggiungere questo obiettivo con sed in un modo completamente portatile?
-i