Suggestion: Find in Files from command line
-
The already existing solutions for searching in files are:
- AstroGrep ( http://astrogrep.sourceforge.net/ ) - only searching, no replacing, wide command line arguments
- Searcher ( https://sourceforge.net/projects/searcher/ ) - only searching, no replacing, no command line arguments
- Text Crawler ( https://www.digitalvolcano.co.uk/textcrawler.html ) - searching & replacing, wide command line arguments
-
@Vitaliy-Dovgan said in Suggestion: Find in Files from command line:
The already existing solutions for searching in files
Well, I think in reality that list is going to be a bit of a long one.
Another one for the list is PowerGREP. It’s certainly not “free”, but I don’t know if a list of these types of alternatives should only list free programs?
Actually, I don’t use PowerGREP any longer. What I’ve found is that RegexBuddy (also not free) has a little “grepper” built into it that is very capable and produces output much like Notepad++'s Search results window. No command line options, though, but in truth, I don’t think I’ve ever had a need for such a thing.
-
I’m using Filelocator Lite, which is now called AgentRansack. Nice, but something built into Npp might make me uninstall it.
-
@Vitaliy-Dovgan said in Suggestion: Find in Files from command line:
The already existing solutions for searching in files are:
AstroGrep ( http://astrogrep.sourceforge.net/ ) - only searching, no replacing, wide command line arguments
Searcher ( https://sourceforge.net/projects/searcher/ ) - only searching, no replacing, no command line arguments
Text Crawler ( https://www.digitalvolcano.co.uk/textcrawler.html ) - searching & replacing, wide command line argumentsAnother one for the list is PowerGREP.
I’m using Filelocator Lite
Am I the only one using good old command line
grep
?Cheers.
-
‘grep’ is not recognized as an internal or external command,
operable program or batch file.?? hmmm … maybe that is the reason why I’m not using it :-D
-
Am I the only one using good old command line
grep
?No. I personally use the old gnuwin32 grep, though it wouldn’t surprise me if there were more modern (or 64bit) versions ported to windows executables.
@Ekopalypse (sorry for the snarky reply, but your phrasing required such)
‘grep’ is not recognized as an internal or external command,
The same errors happen for me when I try to run an application on my PC that I haven’t installed – like, for instance, the FileLocator/AgentRansack that you mentioned:
>where filelocator INFO: Could not find files for the given pattern(s). >where agentransack INFO: Could not find files for the given pattern(s). >filelocator 'filelocator' is not recognized as an internal or external command, operable program or batch file. >agentransack 'agentransack' is not recognized as an internal or external command, operable program or batch file. >where grep C:\usr\local\bin\grep.exe >grep --version GNU grep 2.5.4 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
maybe that is the reason why I’m not using it :-D
That’s not likely the reason, because it’s as easy (or easier) to install gnuwin32 grep as it is to install the FileLocator/AgentRansack.
-
Ahh - I had understood that this was a system tool.
-
I have
grep.exe
installed in my C:\usr\bin\ directory along with Git for Windows (which supplies it’s owngrep
), but I prefer the GnuWin32 version.Cheers.
-
Personally, I tend to keep my command line and GUI programs separate. I’ll let a GUI program like Notepad++ do what it’s good at, and a command-line tool like grep do what it’s good at. If I want command-line power, I use a command-line tool (and usually something written originally for linux and ported to windows); when I want a graphical environment, I use a native win32 application.
Thus, if I’ve already got one of the files I want to search open in Notepad++, I will pull up the Find In Files and have it recursively search the directory structure relative to the current file. But if I have something I’m trying to find elsewhere (more often the case), or if I want a lot of fine control on command-line-style arguments, I’m more likely to pull out grep. (which explains why I’m not likely to use the
-ff...
args that Vitaly suggested.But I can see for someone who prefers to always use a GUI for their grepping results, whether started from the GUI or from the command line, I could see the benefit of having that grepping be part of Notepad++ rather than having a specialty GUI app like those mentioned by others.
-
…but something built into Npp might make me uninstall it.
I think we’re overlooking something.
Notepad++ isn’t a great searching tool.
There, I’ve said it. :-)
I await the flames. -
…grep…
Maybe grep isn’t great for multiple directories that aren’t in the same tree? Too much to specify, or maybe there’s a nice way to do something like that via a config file?
Specifying such a thing is problematic even for the best tools.
It is a weakness for Notepad++ as well.Plus grep uses yare (yet another regex engine).
The grepper in RegexBuddy allows me to pick the regex engine I want to use (typically I set it to the same one as N++, i.e., Boost).<start_unpaid_commercial>
RegexBuddy really is a great value, for I think 35USD.
</end_upaid_commercial> -
@Alan-Kilborn - to quote the famous “how dare are you??” :-D
To be honest, I never had a problem with it. Yes, there are better solutions, like the one I posted, but for what I use it for, it’s good enough. Maybe because I only use utf8 encoded files.
-
@Ekopalypse said in Suggestion: Find in Files from command line:
how dare are you?
:-)
N++'s searching is slow, and as previously mentioned, how does one search several different trees? Also, you can’t do anything else with it while it is conducting a search.
It’s perfectly fine for most things (interactive find-next, find all in current file, …), but when you get into searching a lot of files, well there are other and better ways to skin that cat.
And since that is what the beginning of this thread was about (automating an already not-great feature), I say “meh” to the original idea. Not something I’d use. But I respect those that would, and their opinions on the topic.
-
The idea is great, because then I can start a new instance easily and it is not blocking my current instance.
-
@Ekopalypse said in Suggestion: Find in Files from command line:
The idea is great, because then I can start a new instance easily and it is not blocking my current instance.
If I’m considering “calling out” like that, I’ll call out to a more capable searching program. :-)
And when that more-capable program shows me the hits and I want to go to one of them, I’ll have that program call back into Notepad++ to take me to the file and hit line. -
I’m not sure I understand, but in the end it depends on personal preference anyway.
I mean, if I use Npp because of its search function, then I think I’m using the wrong tool for the job.
On the other hand, if I mainly edit, then it’s good to have a powerful search function like Npp has, and if it can be easily launched from Npp and doesn’t block me - all the better. -
Well, in theory we could put together all we know and create the desired functionality via scripting…if it isn’t picked up natively. There’d be a lot of individual pieces, but I can’t think of anything that would be a “stopper”.
-
Yes, that (usually) always works :-D
-
And some of the pieces are:
- invoke new instance of N++ with new parameters on the command line
- command line pickoff of parameters (@Ekopalypse has showed us how to do this in the past)
- invoking of the Find in Files dialog after N++ startup
- filling in the fields on Find in Files with command line data
- starting the Find in Files running
So, okay, only 4 basic steps, but some of those steps have a lot of “meat” to them.
I don’t know that I have sufficient interest in the base topic to work up a script, but the script-writer in me thinks that writing it would be more fun than using it would be useful. :-)
-
YAREST (Yet Another Regular Expression Search Tool)
I use grepWin from Stefans Tools.
It’s FOSS, it’s also available in the PortableApps.com platform, it uses Boost (or plain text) for searching, it can be easily configured to invoke Npp at the desired found line [ grepWin :: Settings > Editor ]:
C:\programs\Notepad++\notepad++.exe -n%line% "%path%"
it works well as a Run menu command:
<Command name="grepWin" Ctrl="no" Alt="no" Shift="no" Key="0">grepWin /searchpath:"$(CURRENT_DIRECTORY)" /filemask:"*.*"</Command>
and I find it nicely bridges the CL/GUI divide. It took a very small amount of work (a batch file wrapper) to make it assume folder and file extension defaults as I prefer them for regular CL invocations. [But sometimes I’ll still fire up GnuWin32 grep (for one thing it’s less to type <grin>)]