GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menggunakan sed untuk mengganti variabel file konfigurasi?

Anda dapat mencoba sed ini:

sed -i.bak 's/^\(VAR5=\).*/\1VALUE10/' file

Ini memberi:

VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE10
VAR6=VALUE6

Meskipun jawabannya telah ditambahkan ke pertanyaan. Saya menghabiskan beberapa waktu untuk mengetahui cara kerjanya, saya ingin menambahkan beberapa fakta dan jawaban versi saya,

sed -i 's,^\(THISISMYVARIABLE[ ]*=\).*,\1'THISISMYVALUE',g' config.cfg

Penjelasan:

  • Sebagai dasar dari sed 's/find_this/replace_with/' , kami mengatakan sed untuk mencari dan mengganti. Ingat juga ada beberapa pembatas lain yang bisa kita gunakan selain / . Ini , digunakan.
  • Di sini kita menemukan baris yang cocok dengan ^\(THISISMYVARIABLE[ ]*=\).* . Ini berarti kita mengelompokkan kecocokan THISISMYVARIABLE[ ]*= . ([ ]* untuk menutupi jika ada spasi setelah kunci)
  • Di bagian ganti \1 adalah referensi balik. Kami mereferensikan grup pertama dalam ekspresi reguler yang kami gunakan untuk pencocokan.

Anda dapat mengatakan:

sed '/^VAR5=/s/=.*/=VALUE10/' filename

Untuk melakukan perubahan pada file in-place , gunakan -i opsi:

sed -i '/^VAR5=/s/=.*/=VALUE10/' filename

Linux
  1. Bagaimana Cara Mengganti String Dalam File?

  2. Bagaimana Cara Menggunakan Sed Untuk Mengganti String Multi-baris?

  3. Bagaimana Cara Menggunakan Jenis File Di Vim?

  1. Bagaimana Cara Menggunakan Sed Atau Ex Untuk Mengganti Blok (Kode multi-baris) Dengan Blok Teks (kode) Baru?

  2. Bagaimana cara menggunakan chmod untuk mengubah izin file?

  3. Bagaimana melakukan sed like text ganti dengan python?

  1. Cara menggunakan sed untuk menghapus n baris terakhir dari sebuah file

  2. sed:bagaimana cara mengganti baris jika ditemukan atau ditambahkan ke akhir file jika tidak ditemukan?

  3. Bagaimana cara mengganti karakter dengan sed secara rekursif?