Frage

I have been trying to do a recursive grep command on files in sub folders using grep in NTemacs and Cygwin. So far the "best" results have been using grep in eshell. When I use this:

grep "t" -r *

I get a list of all file names containing the letter t, in all sub folders one layer down but notthing else. In Cygwin i get nothing. I'm working on a directroy that is not in the Cygwin install. Don't know if that mather or not.

What I want is to match the content of a more complex string in all files (and not just the file names, but the content). And in all sub directories.

I would like to use eshell from emacs but I'm open to suggestions, apart form using LINUX. This is a work PC and I don't want to do all the setup of a LINUX install.

War es hilfreich?

Lösung

i just wrote a very similar answer to another question, but i suspect it's the same root problem:

my first thought is that your files have windows line endings (CRLF) as opposed to unix/linux line endings (LF), and that is messing with grep's ability to parse the file. try running this:

dos2unix filename

on each file you need to search then try your grep statement again.

if you need to convert many files across several directories, i suggest using dos2unix with the -exec action of find:

find . -exec dos2unix {} \;

(add whatever other options you need to find before running that, of course)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top