GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan Sed Dengan Karakter Khusus?

Saya memiliki direktori yang penuh dengan file XML yang terlihat seperti ini, di mana saya ingin mengubah nilai nomor elemen "offset" dari 1 ke nomor lain

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

Saya menulis berbagai kombinasi dari perintah sed ini, tetapi tidak ada yang saya coba berjalan tanpa kesalahan. Saya cukup yakin bahwa saya harus menghindari beberapa karakter, tetapi karakter yang saya coba selalu berakhir dengan kesalahan ("token tidak terduga", "opsi tidak dikenal", dll). Saya juga mencoba tanpa tanda -e, karena itu sebenarnya bukan ekspresi.

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

Bantuan apa pun akan dihargai.

Jawaban yang Diterima:

Coba ini,

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

Gunakan pembatas sed yang berbeda jika input berisi garis miring.


Linux
  1. Menggunakan warna dengan printf

  2. Tampilkan karakter khusus di Unix saat menggunakan Perintah 'kurang'

  3. Menggunakan sed untuk membagi string dengan pembatas

  1. Menggunakan Notify-send Dengan Cron?

  2. Tambahan Dengan 'sed'?

  3. Bagaimana cara mengisi file dengan FF menggunakan dd?

  1. Menggunakan Bungkus Kata Dengan Mc?

  2. Konversi Kata Sandi Dengan Karakter Khusus Untuk Digunakan Dengan Script Harapkan?

  3. ganti teks dengan panjang yang sama menggunakan sed