GNU/Linux >> Belajar Linux >  >> Linux

Slash Dan Backslash Di Sed?

Pertanyaan ini sudah memiliki jawaban di sini :Karakter apa yang harus saya hindari saat menggunakan sed dalam skrip sh?

(4 jawaban)
Tutup 5 tahun yang lalu.

Saya ingin menggunakan sed untuk mengubah garis miring menjadi garis miring terbalik dan garis miring, yaitu / -> / . Tapi itu tidak berhasil. Ini contoh kecilnya:

#!/bin/bash
TEST=/etc/hallo
echo $TEST
echo $TEST | sed "s/hallo/bello/g"
echo $TEST | sed "s///\//g"

Output dari tiga baris pertama adalah seperti yang diasumsikan. Tapi yang terakhir tidak berhasil. Mengapa? Bagaimana cara mengoreksi bagian terakhir?

Jawaban yang Diterima:

Gunakan tanda kutip tunggal untuk ekspresi yang Anda gunakan:

sed 's///\//g'

Dalam tanda kutip ganda, memiliki arti khusus, jadi Anda harus membuat garis miring terbalik:

sed "s///\\//g"

Tapi lebih bersih untuk mengubah pembatas:

sed 's=/=\/=g'
sed "s=/=\/=g"

Linux
  1. Perintah Sed Linux:Penggunaan dan Contoh

  2. Bagaimana Mengganti String Dengan String Yang Mengandung Slash Dengan Sed?

  3. Tambahkan Dan Tambahkan String Ke Setiap Elemen $* Di Shell?

  1. Script Shell Dengan Fungsi Dan Parameter Sebagai Variabel?

  2. Mewarnai Keluaran Ekor Dengan Sed?

  3. Encode Konten File Dan Gema Sebagai Satu Baris?

  1. Temukan dan ganti dalam skrip shell

  2. Memulihkan stdout dan stderr ke nilai default

  3. sed e dan g flag tidak bekerja bersama