GNU/Linux >> Linux Esercitazione >  >> Linux

Usare Sed con personaggi speciali?

Ho una directory piena di file XML che assomiglia a questo, per il quale voglio cambiare il valore del numero dell'elemento "offset" da 1 a un altro numero

$ cat my.xml
      <offset xmlns="">1</offset>

Ho scritto varie combinazioni di questo comando sed, ma nulla di ciò che ho provato viene eseguito senza errori. Sono abbastanza sicuro di dover sfuggire ad alcuni personaggi, ma quelli che ho provato finiscono sempre con errori ("token imprevisto", "opzione sconosciuta", ecc.). Ho anche provato senza il flag -e, poiché in realtà non è un'espressione.

sed -i -e s/<offset xmlns="">1</offset>/<offset xmlns="">99</offset>/ *.xml

Qualsiasi aiuto sarebbe apprezzato.

Risposta accettata:

Prova questo,

$ sed 's~<offset xmlns="">1~<offset xmlns="">99~g' file
          <offset xmlns="">99</offset>

Usa un delimitatore sed diverso se l'input contiene barre.


Linux
  1. Utilizzo di più modelli contemporaneamente con il comando Sed

  2. Utilizzando Notifica-Invia con Cron?

  3. Aggiunta con 'sed'?

  4. Eliminare tutti i commenti C con Sed?

  5. Usare l'a capo automatico con Mc?

Comando Tr in Linux con esempi

Usare il comando tr in Linux per giocare con i personaggi

Comando Linux tr con esempi

Utilizzo di sed per dividere una stringa con un delimitatore

Utilizzo di find e tar con file con caratteri speciali nel nome

Come rinominare tutti i file con caratteri speciali e spazi in una directory?