Jika Anda ingin menyimpan perubahan dari sed
kembali ke file menggunakan -i
opsi:
$ cat file
<head>abc</head>
<td>hello</td>
<td>hello</td>
<td>hello</td>
<td>abc</td>
<td>abc</td>
<h1>abc</h1>
$ sed -ni '/<td>/{s/^\s*//;s/abc//;s/<\/\?td>//g;p}' file
$ cat file
hello
hello
hello
Edit: Regexp lebih jelas jika kita menggunakan pemisah yang berbeda dengan sed
dan gunakan opsi regexp yang diperluas -r
:
$ sed -r 's_</?td>__g' file
hello
hello
hello
abc
abc
?
jadikan karakter sebelumnya opsional jadi /
tidak harus hadir membuat regexp cocok dengan <td>
dan </td>
jadi satu.
Dalam perintah sed Gunakan opsi -i untuk mengubah file itu sendiri , jika tidak, output dicetak di layar tetapi file tetap sama.
Rumusnya adalah:
sed -i <targetFile> 's/<beforeText>/<afterText>/g' <targetFile>
Misalnya:
sed -i myCredentials.txt 's/secretPassword/xxx/g' myCredentials.txt
Opsi lain - output ke file lain dan ganti namanya:
sed 's/secretPassword/xxx/g' myCredentials.txt > temp.txt
rm myCredentials.txt && mv temp.txt myCredentials.txt
untuk info lebih lanjut, lihat dokumentasi:
Utilitas sed membaca file yang ditentukan, atau input standar jika nofile ditentukan, memodifikasi input seperti yang ditentukan oleh daftar perintah . Input tersebut kemudian ditulis ke output standar. Perintah tunggal dapat ditentukan sebagai argumen pertama untuk sed. Beberapa perintah dapat ditentukan dengan menggunakan opsi -e atau -f. Semua perintah diterapkan ke input dalam urutan yang ditentukan terlepas dari asalnya.
-i Edit file di tempat , menyimpan cadangan dengan ekstensi yang ditentukan. Jika ekstensi dengan panjang nol diberikan, tidak ada cadangan yang akan disimpan. Tidak disarankan untuk memberikan ekstensi dengan panjang nol saat mengedit file di tempat, karena Anda berisiko mengalami kerusakan atau sebagian konten dalam situasi di mana ruang disk habis, dll.