GNU/Linux >> Belajar Linux >  >> Linux

Substitusi variabel lingkungan di sed

Selain jawaban Norman Ramsey, saya ingin menambahkan bahwa Anda dapat mengutip dua kali seluruh string (yang dapat membuat pernyataan lebih mudah dibaca dan mengurangi rawan kesalahan).

Jadi jika Anda ingin mencari 'foo' dan menggantinya dengan konten $BAR, Anda dapat mengapit perintah sed dengan tanda kutip ganda.

sed 's/foo/$BAR/g'
sed "s/foo/$BAR/g"

Yang pertama, $BAR tidak akan diperluas dengan benar sedangkan yang kedua $BAR akan diperluas dengan benar.


Dua contoh Anda terlihat identik, yang membuat masalah sulit didiagnosis. Potensi masalah:

  1. Anda mungkin memerlukan tanda kutip ganda, seperti pada sed 's/xxx/'"$PWD"'/'

  2. $PWD mungkin berisi garis miring, dalam hal ini Anda perlu menemukan karakter bukan terkandung dalam $PWD untuk digunakan sebagai pembatas.

Untuk menyelesaikan kedua masalah sekaligus, mungkin

sed '[email protected]@'"$PWD"'@'

Linux
  1. Karakter yang diizinkan dalam nama variabel lingkungan Linux

  2. Bagaimana cara mengubah bahasa git saya?

  3. Keluar dari kode penugasan variabel ke substitusi perintah di Bash

  1. Bagaimana cara menggunakan sed untuk mengganti variabel file konfigurasi?

  2. aksesibilitas variabel lingkungan di Linux

  3. cara meneruskan variabel lingkungan ke sudo su

  1. Kiat dan trik variabel lingkungan Linux

  2. Menggunakan Referensi Ke Variabel Bash String Di Sed?

  3. Apa variabel lingkungan XDG_VTNR?