Saya memiliki file dengan banyak contoh Text_1
dan Text1
dan saya harus mengganti kedua string tersebut dengan Text_A
dan TextB
masing - masing.
Saat ini saya sedang melakukan dua fungsi Find and Replace pada masing-masing file yang menemukan Text_1
dan menggantinya Text_A
dan yang lainnya menemukan Text1
dan menggantinya TextB
.
Apakah ada cara untuk melakukan ini sekaligus daripada harus menjalankan "Temukan dan Ganti" dua kali?
Saya menggunakan Dreamweaver CS3, tetapi saya juga memiliki Notepad ++, Notepad reguler, OO Writer, MS Word jika itu akan lebih mudah. Idealnya saya bisa melakukan ini di Dreamweaver atau Notepad ++ tapi saya terbuka untuk mengunduh sesuatu yang lain untuk menyelesaikan pekerjaan. Saya lebih suka tidak harus melakukan hal-hal baris perintah atau membuat file batch (sementara saya menyadarinya, saya benar-benar tidak mengerti).
Jika uraian di atas tidak jelas, izinkan saya menjelaskannya dengan cara ini ...
Saya ingin menjalankan Find & Replace 1 kali dalam 1 dokumen dan saya ingin melakukan SEMUA hal berikut selama satu instance Find & Replace:
- Temukan
Text_1
dan Ganti denganText_A
- Temukan
Text1
dan Ganti denganTextB
Saya tidak mencoba melakukan Temukan dan Ganti di beberapa dokumen.
Jawaban:
Lihatlah Sed . Anda dapat dengan mudah mencapai tujuan Anda hanya dengan satu baris perintah
sed -e "s/Text_1/TextA/" -e "s/Text1/TextB/" <your_file.txt>your_file_new.txt
sumber
Karena Notepad ++ 6.0 sebenarnya dimungkinkan tanpa skrip menggunakan teknik berikut:
Temukan: (Text_1) | (Text2)
Ganti: (? 1Teks_A) (? 2TeksB)
Sintaks umumnya adalah:
? 1 merujuk pada frasa yang pertama kali ditangkap dan seterusnya.
Saya mendapatkan ini dari jawaban berikut: /programming//a/16104946/287101
sumber
Menggunakan Notepad ++, Anda bisa
Buka semua file yang berisi kata-kata yang ingin Anda ganti dan gunakan Cari / Ganti di semua file yang terbuka
Gunakan Temukan / Ganti dalam file
Rekam makro melakukan pencarian dan mengganti opsi dan memutarnya kembali
sumber
Anda lebih baik menjalankan Cari & Ganti dua kali, karena Anda memiliki dua penggantian berbeda yang terjadi. Namun, harus ada sedikit tradeoff dalam waktu pemrosesan. Pertimbangkan yang berikut ini:
Menjalankan Cari & Ganti sekali, mencari istilah dengan istilah:
Untuk tujuan berjalan, kami akan menganggapnya linear dan mengatakan bahwa ini berjalan dalam waktu O (n).
Anda ingin menemukan dua istilah yang berbeda. Menjalankan Cari & Ganti dua kali terlihat seperti:
yang akan membutuhkan waktu O (2x1n), atau dua kali selama mencari satu istilah.
Mencari dua istilah dengan dua penggantian secara teoritis akan terlihat seperti:
Mendapatkan istilah tidak membutuhkan banyak kekuatan pemrosesan, jadi pada dasarnya Anda mencari dua set pencarian untuk setiap istilah, memberikan waktu O (1x2n), berjalan sekali tetapi mencari dua istilah.
Meskipun Anda akan menghemat waktu tidak memuat setiap istilah dua kali, Anda akan menghabiskan lebih banyak waktu mencari setiap istilah dua kali, jadi ada sedikit tradeoff, dan karena fitur ini akan lebih jarang digunakan daripada mencari satu istilah dengan satu penggantian, pengembang aplikasi hanya menganggap tidak menulis fungsi itu.
sumber
Dukungan ekspresi reguler di Notepad ++ sangat terbatas. Tanpa operator pergantian, tidak ada harapan bahkan mendekati apa yang ingin Anda lakukan. Anda perlu menggunakan
sed
atau editor yang memiliki dukungan regex yang lebih baik.Sumber
Lihat juga
GNUWin32
sed
untuk Windowssumber
Saya menggunakan TextCrawler untuk menemukan dan mengganti batch. (Saya menggunakan Notepad ++ untuk pencarian tunggal / ganti banyak file karena ini lebih cepat daripada Textcrawler.) TextCrawler mendukung ekspresi reguler serta pencarian / temukan normal. File batch dapat disimpan dan dimuat ulang untuk digunakan di masa depan.
sumber
Juga dapat dilakukan dengan menggunakan Plugin ActiveX (untuk Notepad ++) dan menjalankan skrip khusus:
sumber
Ini berfungsi untuk semua angka (untuk menghapus semua angka dari teks / artikel)
Tekan Ctrl + H untuk membuka dialog Temukan dan Ganti.
Di kotak "Temukan apa", ketik ^ #
Biarkan kotak "Ganti dengan" kosong.
Menggantikan semua.
sumber