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 sednon 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 sedsu Linux, ma FreeBSD si sedaspetta che il primo argomento dopo l' -iopzione sia l'estensione per la copia di backup. Ecco come sarebbe:
sed -i '' '1s/^/<!DOCTYPE html> \n/' ${file_name.html}
Tuttavia, GNU seda 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