Sono nuovo nello script di bash e sto cercando di sostituire alcune parole nel mio file usando sed. In seguito è la bash che uso nel mio script:Errore sed: bandiera errata in comando sostitutivo: 'U'
sed -i '' "s/<pre>.*<\/pre>/<pre>($NEWNAME) $MD5<\/pre>/"~/Desktop/replace.html
ed ho ottenuto un messaggio di errore che dice: bad flag in substitute command: 'U'
. Uso il doppio preventivo perché devo inserire le variabili.
Il mio ambiente è Mac.
======================================
1.Turns fuori Ho dimenticato di lasciare uno spazio tra la stringa di sostituzione e il nome del file. Che ha portato al risultato sempre mostrando: bad flag in substitute command: '~'
. Ora funziona.
2. Il motivo è che ho usato MD5=$(md5 path)
di creare valore MD5 che ottiene la Reault di MD5 (path) *****
, e il percorso contiene /
che rompe la regex. Dopo aver modificato MD5=$(md5 -q path)
, sarà ok.
Non utilizzare strumenti di elaborazione del testo per modificare HTML. Utilizzare uno strumento progettato per lavorare con HTML. –
@ TomFenech Grazie. Ma devo caricare file e modificare il valore md5 nel codice HTML usando lo script della shell. Hai qualche idea migliore per questo? – JasmineOT
Utilizzare un linguaggio che supporti la modifica di HTML, come Perl, Python, PHP, Ruby, ... –