Mac OS X mencari dan mengganti alat dengan dukungan ekspresi reguler

9

Saya mencari alat pencarian / ganti GUI berbasis ekspresi reguler yang dapat menangani banyak file / subdirektori, seperti grepWin tetapi untuk Mac OS X.

PS. Saya menyadari grep dan saya tidak memerlukan editor, hanya alat mandiri.

pengguna187291
sumber
Edit Komodo ( activestate.com/komodo-edit ) memiliki fitur "Temukan / Ganti File". Ini adalah editor gratis untuk Mac, Windows dan Linux.
jsherk

Jawaban:

3

Oh, saya juga baru saja menemukan ini:

http://www.dprog.ch/home/products/find_and_replace_it/

Tentang Temukan & Ganti!

Utilitas pencarian dan penggantian yang kuat. Hal ini memungkinkan melakukan penggantian batch yang sangat kompleks di dalam file teks dari berbagai ukuran. Ini mendukung sintaks ekspresi reguler dan lusinan penyandian. Ini memiliki kemampuan scripting yang memungkinkan transformasi on the fly teks pengganti untuk setiap string yang ditemukan. Bahkan menangani batch pemrosesan encoding file, serta jenis end-of-line.

Berikut adalah beberapa fitur utama Find & Replace It !:

  • Temukan dan ganti di banyak file sekaligus
  • Mendukung regexps
  • Mendukung banyak penyandian teks
  • Menyediakan editor regexp
  • Menyediakan pratinjau find & replace
  • Menawarkan antarmuka skrip yang memungkinkan untuk mengubah teks pengganti dengan cepat
  • Banyak lagi fitur

Ini dikembangkan oleh dProg - Philippe Docourt . Saya tidak pernah menggunakannya , jadi ambil rekomendasi ini dengan sebutir garam!

Josh
sumber
12

Anda mungkin mencari aplikasi GUI, tetapi saya dapat merekomendasikan perintah terminal. Perl dapat melakukan penggantian inline:

find . -type f -exec perl -p -i -e "s/SEARCH_REGEX/REPLACEMENT/g" {} \;

Ini akan menemukan semua file di bawah direktori saat ini dan ganti berdasarkan regexp yang disediakan. Jika Anda perlu mengubah direktori, cara mudah adalah mengetik: cd (pastikan ada spasi setelahnya) lalu seret dan letakkan folder dari Finder ke jendela terminal. Tekan kembali dan Anda akan berada di folder yang Anda inginkan; kemudian jalankan perintah perl di atas.

Jika Anda ingin perl membuat salinan cadangan sebelum mengganti, jalankan:

find . -type f -exec perl -p -i.bak -e "s/SEARCH_REGEX/REPLACEMENT/g" {} \;
Josh
sumber
4
setiap kali saya menyarankan Perl dalam jawaban SO atau SU, saya downvoted tanpa jawaban. Bagaimana kelihatannya di sekitar sini. :)
Ian C.
@Ian: Mungkin saya seharusnya menggunakan sintaks ruby? ;-)
Josh
2
bayangkan pengguna super menggunakan ekspresi reguler perl, itu gila
mindless.panda
1

Saya mengerti bahwa Anda tidak memerlukan editor lengkap, tetapi sering kali alat terbaik ditemukan dalam satu. TextMate memiliki dukungan penuh untuk ekspresi reguler dan menangani file dan direktori dengan sangat baik. Lain yang saya belum mencoba tetapi mendengar hal-hal baik tentang TextWrangler .

Josh K.
sumber
terima kasih, saya sudah menggunakan Textmate dan itu luar biasa, tetapi bukan sebagai alat pencarian-ganti. "Kenapa tidak ada tombol stop sialan? !!" ( blog.johnjosephbachir.org/2007/10/01/... );))
user187291