Is there any way to find a string which is repeated several times in each file but only replace the first result on each file?
Thanks
Is there any way to find a string which is repeated several times in each file but only replace the first result on each file?
Thanks
The find dialogue of Notepad++ includes a Find in files tab with a Replace in files button. To replace abc
with def
in all files you could try the following regular expression search string \A(.*?)abc(.*)\z
with \1ghi\2
. You will need to select both Regular expression and Dot matches newline.
The \A
only matches at the very start of the file. The (.*?)abc
is a non-greedy match and capture of everything up to but not including the first abc
. The (.*)
matches and captures everything else to the end of the file which is matched by the \z
. (I experimented without the (.*)\z
part and all occurrences of abc
were changed.)
If the replacement to be done also needs regular expressions then you may need to alter the \2
part of the replacement text.
Do not know how this would work with big files. Whatever size of file you use I recommend making a backup before using the Replace in files facility.
Tested in Notepad++ 6.3.2 with two very small files.
If you want to perform the replacement on multiple open files, you can't do it with a single click in the Find dialog; you'll have to select each file and do replacements one at a time manually.
You may be able to record a macro to do this, however I'm not sure if you'll have to run it once for each file as well, or if you can have the macro repeat itself for all open files.