GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengganti Semua Kemunculan Word di Semua File di Baris Perintah Linux

Pertanyaan :Bagaimana cara mengganti semua kemunculan kata di semua file di folder yang diberikan?

Pertimbangkan skenario masalah di mana Anda memiliki situs web di mana Anda sering merujuk ke tahun berjalan. Setiap tahun Anda perlu memperbarui tahun. Anda dapat dengan mudah menemukan semua kemunculan di semua file tetapi mengubah tahun secara manual, satu per satu, di setiap file harus dihindari.

Solusi

Jadi apa yang kamu lakukan? Salah satu dari beberapa cara untuk menemukan semua kemunculan dan kemudian mengganti istilah yang dicari adalah dengan menggunakan kombinasi perintah find dan sed.

Anda dapat dengan mudah melakukannya dengan satu perintah:Dalam contoh ini, Anda memiliki 50 halaman web di folder halaman. Perintah ini akan langsung mengubah semua kemunculan "2017" menjadi "2018":

find ~/public_html/my_website/pages -type f -exec sed -i 's/2017/2018/g' {} \;

Untuk membuat contoh di atas sedikit lebih umum, inilah yang perlu Anda lakukan:

find <path_to_directory> -type f -exec sed -i 's/<search_text>/<replace_text>/g' {} \;

Pada perintah di atas, ganti , dan dengan data yang sebenarnya.

Penjelasan

Apa yang Anda lakukan di sini adalah bahwa Anda menggunakan perintah find untuk mendapatkan semua file di direktori saat ini dan sub-direktori. Opsi -type f memastikan bahwa Anda hanya mendapatkan file, bukan direktori.

Dan kemudian Anda meneruskan hasilnya menggunakan perintah exec ke perintah sed. Perintah sed mencari teks dan menggantinya.

{} \; adalah bagian dari perintah exec. Spasi antara } dan \ adalah wajib.

Kiat cepat Linux ini disarankan oleh Pembaca Buku Pegangan Linux, Jane Hadley. Punya solusi yang lebih baik untuk masalah ini? Bagikan di komentar.


Linux
  1. Menemukan File di Command Line (Cara)

  2. 5 Alat Baris Perintah untuk Menemukan File dengan Cepat di Linux

  3. Cara Menggunakan Perintah find Linux untuk Menemukan File

  1. Cara Mengganti Nama File di Linux

  2. Cara Menemukan File di CentOS 8 di Command Line

  3. Cara Menemukan File dengan Perintah fd di Linux

  1. Bagaimana menemukan semua file yang jarang di Linux

  2. Perintah Linux:Bagaimana cara 'menemukan' hanya file teks?

  3. Bagaimana menemukan semua file yang diakhiri dengan .rb dengan Linux?