Re: searching a directory sub-tree.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/26/25 3:17 PM, Jerry James wrote:
On Wed, Mar 26, 2025 at 3:01 PM home user via users
<users@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
Good afternoon,

I'm trying to search a directory sub-tree for a specific string.  I use this:

find . -type f -print | xargs grep -l [string] /dev/null

(but without the brackets).  This often works.  But it sometimes fails when the search string contains "printable" characters other than letters and digits.  Examples of both:

bash.32[.Organ]: find . -type f -print | xargs grep -l D-_qS_3KXBA /dev/null
./organ_dir.txt
bash.33[.Organ]: find . -type f -print | xargs grep -l -ob9LHPEaKY /dev/null
grep: conflicting matchers specified
bash.34[.Organ]: find . -type f -print | xargs grep -l "-ob9LHPEaKY" /dev/null
grep: conflicting matchers specified
bash.35[.Organ]:
bash.35[.Organ]:
bash.35[.Organ]:

bash.36[.Organ]: find . -type f -print | xargs grep -l '-ob9LHPEaKY' /dev/null
grep: conflicting matchers specified
bash.37[.Organ]:

How do I get this to work even when the search string includes (especially starts with) printable characters other than digits and letters?

The problem is that those strings start with a '-', so grep thinks you
are specifying more option.  Add -e before your search string:

find . -type f -print | xargs grep -l -e -ob9LHPEaKY [dir]

Also, you're working kind of hard here.  You might find grep's
recursive search option a little easier to use:

grep -rle -ob9LHPEaKY [dir]

Thank-you, Jerry.  That works.
A co-worker back in the late 1980's gave that "find" line.  I'm curious: did "grep" have the -r option back then?

Part 2
The sub-tree I'm searching is loaded with huge binary files along with some ".txt" files.  The searches take several minutes each.  How do I restrict the search to ".txt" files? ...
-----
bash.43[ShiPin]: grep -rle -ob9LHPEaKY *.txt
bash.44[ShiPin]: man grep
bash.45[ShiPin]: grep -rle -ob9LHPEaKY *\.txt
bash.46[ShiPin]:
-----
The above should result in one hit.  The man page is confusing me on this.

--
_______________________________________________
users mailing list -- users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to users-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/users@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue



[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux