Pertanyaan: Saya ingin mengganti teks dengan tautan di tag jangkar dari file html. Tantangannya adalah, proyek berisi ratusan file HTML seperti itu dan mengganti teks di semua file itu secara manual bukanlah cara yang cerdas untuk melakukannya. Jadi pertanyaannya adalah, bagaimana saya bisa melakukan hal yang sama menggunakan satu perintah di Linux?
Solusi:
Menggunakan sed perintah di Linux:
sed -i 's/#\(.*logo\)/domain.ca\1/' $file
Perintah di atas mencari baris yang berisi pola logo dan mengganti “#” dengan tautan (misalnya, domain.ca)
Anda juga dapat melewatkan beberapa file untuk perintah di atas seperti yang ditunjukkan di bawah ini.
Variasi lain dari perintah di atas adalah:
sed -i '/logo.png/ s/#/domain.ca/' *.html
Menggunakan perl perintah:
perl -i -pe 's/#/domain.ca/ if /logo.png/' about-us.html
Perintahnya sangat mudah – cari teks dan ganti dengan string tertentu jika dan hanya jika menemukan string yang cocok pada baris file tersebut.
Semua perintah di atas melakukan pekerjaan yang sama, tetapi hanya berbeda dalam cara Anda memasukkan ekspresi reguler Anda.
Gunakan Vim di ex mode (tidak dapat digunakan dengan banyak file):
ex -sc '/logo/s/#/http:\/\/domain.ca\//|x' about-us.html
Pada perintah di atas ekspresi reguler ‘/logo/s/#/http:\/\/domain.ca\//|x ' terdiri dari 's' dan 'x' – dengan 's' untuk pengganti dan 'x' untuk menyimpan dan menutup file.
Catatan:Perintah di atas menggunakan vim , Anda tidak dapat melewatkan banyak file. Anda perlu menjalankan perintah ini secara manual untuk setiap file yang akan diganti.