sed -i + quale è la stessa opzione in SOLARIS

Io uso il seguente comando sed in UNIX Solaris

Dalla macchina SOLARIS

sed -i '$ s/OLD/NEW/g' test sed: illegal option -- i 

qualcuno può avere un’idea di cosa sia l’opzione illegale in Solaris (con l’opzione “-i” in linux ho bisogno di un’altra opzione in Solaris con lo stesso effetto)

lidia

    Dovrai replicare il comportamento di te stesso memorizzando i risultati in un file temporaneo e quindi sostituendo il file originale con il file temporaneo. Questo può sembrare inelegante, ma questo è tutto ciò che sed -i sta facendo sotto le coperte.

     sed '$ s/OLD/NEW/g' test > test.tmp && mv test.tmp test 

    Se ti interessa, puoi renderlo un po ‘più robusto usando mktemp :

     TMP=$(mktemp test.XXXXXX) sed '$ s/OLD/NEW/g' test > "$TMP" && mv "$TMP" test 

    Non è esattamente lo stesso di sed -i, ma ho avuto un problema simile. Puoi farlo usando perl:

     perl -pi -e 's/find/replace/g' file 

    fare la copia / mossa funziona solo per singoli file. se vuoi sostituire del testo su ogni file in una directory e sottodirectory, hai bisogno di qualcosa che lo faccia al posto giusto. puoi farlo con perl e trovare:

     find . -exec perl -pi -e 's/find/replace/g' '{}' \;