2017-05-21 3 views
0

Ich fragte mich, dass; Gibt es eine Möglichkeit, aus dem n-ten Vorgängerverzeichnis zu grepen? Zum Beispiel lassen Sie uns sagen, dass ich ein Skript, das in ihm grep Befehl hat, unter dem angegebenen Pfad sitzt:Generische Möglichkeit, Dateien einschließlich Nth Elternverzeichnisse grep

/home/usr/project/utilities/wheremyscriptsits/myscript.sh 

Ich möchte meine grep Prozedur von diesem Pfad starten:

/home/usr/project 

Ist Gibt es einen Weg, dies zu tun, ohne den Pfad explizit anzugeben? z.B. Maxdepth-ähnliche Funktionalität für übergeordnete Ebenen.

Vielen Dank für Ihre Zeit und Interesse.

+0

Sorry, ich folge nicht, wenn ich 'myscript.sh' starte, was soll der grep zurückgeben? –

+0

es zielt darauf ab, "bugSet" aus Dateien, die unter/home/usr/project sind. Ich glaube, wir können mit einem solchen Ansatz beginnen: echo $ {PWD%/*/*} ' – Elesmoth

+0

Warum willst du den Pfad nicht fest codieren? Warum sollte sich Ihr Skript unbedingt in der Dateihierarchie befinden? – odradek

Antwort

0

Ihre Frage ist nicht ganz klar, aber wenn ich Sie verstehen, dann wie etwas, das wird für die meisten Fälle mit bash arbeiten:

myDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 
startDir="$(cd "$myDir/../.." && pwd)" 
find "$startDir" -type f -exec grep whatever {} + 

http://mywiki.wooledge.org/BashFAQ/028 Siehe für weitere Informationen.

Verwandte Themen