On Wed, Mar 26, 2025 at 3:01 PM home user via users
<users@lists.fedoraproject.org> 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]

-- 
Jerry James
http://www.jamezone.org/
-- 
_______________________________________________
users mailing list -- users@lists.fedoraproject.org
To unsubscribe send an email to users-le...@lists.fedoraproject.org
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@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to