GNU/Linux >> Belajar Linux >  >> Linux

Perintah sed Linux tidak mengubah file target

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.


Linux
  1. Cara menggunakan perintah sed Linux

  2. Cara Menggunakan Perintah Tar di Linux

  3. Perintah Sed Linux:Penggunaan dan Contoh

  1. Bagaimana Perintah Sed '1!g;h;$!d' Membalikkan Isi File?

  2. Contoh Penting dari Perintah File di Linux

  3. 9 Contoh Perintah Split yang Berguna di Linux

  1. Cara Menggunakan Perintah md5sum di Linux

  2. sed Contoh Perintah di Linux

  3. sed:perintah tidak ditemukan