views:

1081

answers:

5

It needs to be graphical. No sed, awk, grep, perl, whatever. I know how to use those and I do use them now, but I need to cherry-pick each replace in 300+ files.

I want a tool where I can:

  • type a search string
  • type a replace string
  • select a directory and file extension

and it would recursively go into each file in that directory and its sub-directories, open it and scroll to the place where search string is and offer two options:

  • replace (and find next)
  • find next

Nothing more. Reg.exp. support is a plus, but not required.

SOLVED: Regexxer is exactly what I needed. In case someone needs it on Slackware, here's what you need to download and how to compile it (choosing correct version of each dependency can be a PITA)

+5  A: 

Emacs + dired + query-replace-regexp

For complete recipe follow this link (it's rather long, covering all possible alternatives),

ADEpt
I've used this in Emacs, and it's awesome. It does _exactly_ what the OP wants.
Denis Bueno
Although I like Regexxer better, I'll vote you up because it is a valid solution. Thanks.
Milan Babuškov
+3  A: 
Jay
Exactly. Thanks.
Milan Babuškov
A: 

jEdit does exactly what you need. It is written in Java and works well in Linux, Windows and OS X (probably other operating systems also).

Neall
Interesting. I used jEdit 3-4 years ago, but don't remember that feature. Is is available via some add-on? Or maybe it was added in the meantime...
Milan Babuškov
I don't know how long it's been there, but the text search dialog box allows searching for regex matches, and you can search all open files or a whole directory if you like.
Neall
SStrangely, the linux version of jedit doesn't have the multiline text area in the search and replace window (version 4.2final)
Barth
+2  A: 

I use gVim for this task all the time. I open up all the files at once, then use the commands to perform a subsitution on each file, asking for confirmation. Generally I use < 20 files, so I open them as tabs and use this:

:tabdo %s/foo/bar/gc

gVim works fine on Windows :) My coworkers often use Textpad to do this same thing, but I'd say gVim is much more efficient at it.

rmeador
bufdo works on buffers instead of tabs, which is pretty useful. Any way to get it to automatically save the files as it goes through buffers?
Neil G
I'm not sure about saving as it goes, but you can save all of them at once when it's done with ":wa". You could also do ":tabdo :w", I think, but I see no point to it. And of course you could use buffers :).
rmeador
A: 

If you are a KDE user there's also kfilereplace.

Flavio