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 kecocokanTHISISMYVARIABLE[ ]*=
. ([ ]*
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
chmod drive eksternal yang baru dipasang untuk mengatur akses penulisan
bc memotong nomor floating point