Temukan & Ganti Teks di Banyak Dokumen dari Baris Perintah

Anonim

Jika Anda merasa nyaman dengan baris perintah dan pernah berada dalam situasi di mana Anda perlu menemukan dan mengganti kata, frasa, URL, atau karakter di sekelompok dokumen teks, perl melakukan pekerjaan dengan cukup baik. String perintah sederhana akan dengan sangat cepat melakukan pencarian dan penggantian kumpulan grup pada teks, baik dalam satu dokumen atau mencakup grup dari beberapa dokumen.

Seperti banyak hal di baris perintah, tidak ada proses konfirmasi, jadi Anda ingin memastikan sintaks Anda disetel dengan benar sebelum memulai perintah, jika tidak, Anda mungkin perlu mencari & mengganti lagi untuk memperbaiki kesalahan ketik Anda.

Sintaks perintah dasarnya adalah sebagai berikut: perl -pi -w -e 's/THIS/THAT/g;' /path/ke/files.txt

Untuk contoh kata tunggal, jika Anda perlu mengganti semua contoh “ogre” dengan “roti jagung” di setiap file .txt dalam folder "Dokumen", maka Anda akan menggunakan perintah berikut:

perl -pi -w -e 's/ogre/roti jagung/g;' ~/Documents/.txt

Untuk contoh menemukan dan mengganti seluruh frasa, misalkan kita akan mengganti seluruh kalimat “The Chocolate Factory ” dengan "The Wizard of Oz" dalam grup file .txt yang dimulai dengan "Film" yang disimpan di direktori Dokumen:

perl -pi -w -e 's/The Chocolate Factory/The Wizard of Oz/g;' ~/Documents/Films.txt

Pencarian dan penggantian dilakukan segera. Anda dapat memeriksa ulang perubahan dengan menggunakan cat dan grep untuk memeriksa:

"

cat ~/Documents/Films124.txt |grep Wizard of Oz"

Memang, ini cukup canggih, dan ya, pencarian dan penggantian batch melalui banyak dokumen dapat dilakukan dengan cara yang lebih ramah pengguna melalui aplikasi GUI seperti TextWrangler dan BBEdit, tetapi terkadang baris perintah lebih cepat untuk tugas cepat seperti ini dan lainnya yang serupa, plus itu tidak memerlukan unduhan tambahan apa pun untuk digunakan.

A jempol ke Lifehacker untuk trik yang sangat baik.

Perbarui: Perintah 'sed' adalah cara lain untuk melakukan pencarian cepat dan ganti melalui baris perintah. Meliputi sed sebagian besar merupakan topik untuk artikel lain, tetapi sintaks dasar penggunaan sed untuk tugas ini sedikit lebih sederhana sehingga lebih mudah diingat:

sed -i 's/THIS/THAT/g' /path/to/files.txt

Tidak ada cara yang benar atau salah, jadi apakah Anda menggunakan perl atau sed menjadi masalah preferensi pribadi.

Temukan & Ganti Teks di Banyak Dokumen dari Baris Perintah