Ich möchte Dateipfade finden, die einer bestimmten Unterzeichenfolge in einem bestimmten Stammverzeichnis entspricht.Wie findet man Pfade, die rekursiv mit einer Unterzeichenfolge in einem Stammverzeichnis übereinstimmen?
Unten ist mein Shell-Skript. Wenn ich eins nach dem anderen teste, sind die Ergebnisse gut. Aber wenn ich eine Schleife mache, ist das Ergebnis leer. Wer kann Tipps geben?
mein Skript
filename=include_pattern
cat $filename | while read LINE
do
echo $LINE
path=$(echo $LINE |cut -d'(' -f2|cut -d')' -f1)
echo $path
result=$(find . -path $path)
echo $result
done
include_pattern
ich extrahieren nur den Inhalt der Datei() von
path=$(echo $LINE |cut -d'(' -f2|cut -d')' -f1)
Nun, ich versuche, einschließlich Wege zu finden Unterzeichenfolge $ path von
find . -path $path
Das Ergebnis ist leer.
Wenn ich es jedoch durch Standalone in der Befehlszeile versuche, gibt es Pfadlisten zurück. Beispiel:
find . -path '.*/cm-audio/src/main*'
Ich kann nicht den Grund, warum dieses vollständige Skript nicht funktioniert. Können Sie mir einen Rat geben?
entfernen Sie die ' '' in der Pattern-Datei, zum Beispiel aus 'file ('. */cm-audio/src/main/*')' make 'Datei (. */cm-audio/src/main/*)' - oder - 'finden. -path "$ {path // '}" ' – jm666
Siehe Bearbeiten Teil meiner Antwort – Montmons