Ich habe ein Beispiel gefunden, das eine Kombination aus „find“ und „xarg“ oder „exec“ verwendet, um im Ergebnis nach einem bestimmten Muster zu suchen (siehe Link).Hier.
Ich möchte jedoch das Ergebnis des Find-Befehls als Suchmuster für grep verwenden. So etwas wie der folgende Befehl, aber ich bin nicht sicher, wie ich ihn konstruieren soll.
find . -name "*.cgi" -printf '%f\n' | cut -d. -f1 | xarg grep 'find_result' *.html
Antwort1
Unter der Annahme, dass es sich um GNU handelt grep
und dass Ihre Dateinamen keine eingebetteten Zeilenumbrüche enthalten:
find . -name '*.cgi' -printf '%f\n' | cut -d. -f1 | sort -u | fgrep -f - *.html
Antwort2
xargs
Das brauchen Sie hier nicht , Sie können einfach grep
die Musterliste von stdin lesen:
mit GNU find:
find . -name '*cgi' -printf '%f\n' | grep -f - *html
ansonsten:
find . -name '*cgi' | cut -f2- -d/ | grep -f - *html