Archiv verlassen und diese Seite im Standarddesign anzeigen : datei aus $HOME-Verzeichnis oder Unterverzeichnis mit AWK ?????? heraus finden ?????
Hallo!
Ich habe da ein kleinere anliegen.
Wie genau kann ich heraus finden ob eine Datei aus der $HOME-Verzeichnis oder einem Unterverzeichnis des $HOME-Verzeichnisses ist?
Wie genau kann man eine Datei auf diese Kriterien prüfen und dann ausgeben? wie $HOME für Home-Verzeichnis und Unter für Unter-Verzeichnis?
Vielen Dank für eure Hilfe ... komme hier echt nicht weiter ;)
Gruss :)
ContainerDriver
16-04-2008, 21:44
Hallo.
Verstehe ich das richtig: du hast eine Datei, und willst überprüfen, ob die auch in $HOME liegt? Das würde ich mit find machen. Allerdings ist dann nicht gesagt, dass es sich um die selbe Datei handelt, es kann auch nur der Name gleich sein.
Oder wenn du den kompletten Pfad der Datei hast, dann könntest du auch überprüfen, ob der Pfad der Datei mit $HOME beginnt.
Gruß, FLorian
Hallo Florian.
Danke für deine Hilfe.
Also, für jede datei soll geprüft werden ob Sie aus dem Home-Verzeichnis, oder Unterverzeichnis kommt.
Wie kann ich denn prüfen ob der Anfang mit $HOME beginnt?
Vielen Dank ;)
Moin,
Also, für jede datei soll geprüft werden ob Sie aus dem Home-Verzeichnis, oder Unterverzeichnis kommt.
jan@jack:~/tmp> cat test_home.sh
if test "$HOME/`basename \"$datei\"`" = "$datei"; then
echo "$datei liegt direkt in HOME"
elif test "$HOME`echo \"$datei\" | sed \"s#^$HOME##\"`" = "$datei"; then
echo "$datei liegt in einem Unterverzeichnis von HOME"
else
echo "$datei liegt ganz woanders"
fi
exit 0
jan@jack:~/tmp> export datei=/home/jan/zahl.txt
jan@jack:~/tmp> ./test_home.sh
/home/jan/zahl.txt liegt direkt in HOME
jan@jack:~/tmp> export datei=/home/jan/tmp/zahl.txt
jan@jack:~/tmp> ./test_home.sh
/home/jan/tmp/zahl.txt liegt in einem Unterverzeichnis von HOME
jan@jack:~/tmp> export datei=/home/juchu/tmp/zahl.txt
jan@jack:~/tmp> ./test_home.sh
/home/juchu/tmp/zahl.txt liegt ganz woanders
Jan
vielen dank für eure hilfe ... das hilft mir doch sehr.
Eine Frage habe ich aber noch an euch:
/home/tmp/user/datei.txt
wie kann ich mit dem cut - Befehl nur datei.txt abschneiden.
Ich versuchte ja schon
cut f1 -d '/' ???
aber das schneidet er mir ja nur das HOME heraus. Wie aber arbeitet cut von rechts nach links?
thx :)
export datei=/home/tmp/user/datei.txt
dirname $datei
gibt
/home/tmp/user
HTH jeebee
BLUESCREEN3D
19-04-2008, 16:34
Und falls du doch mal cut von rechts nach links benutzen musst:
echo "/home/tmp/user/datei.txt" | rev | cut -d '/' -f 1 | rev
Aber in diesem Fall ist wirklich dirname geeigneter.
Ähem.... DIRNAME und BASENAME werfe ich mal ein:
$ dirname /home/jg/tmp/file.txt
/home/jg/tmp
$ basename /home/jg/tmp/file.txt
file.txt
Problem 1: $HOME mit ausgabe von `dirname $foo` vergleichen
Problem 2: basename statt cut verwenden.
Oder habe ich was überlesen? ;)
BLUESCREEN3D
20-04-2008, 19:44
@Chito: Was wolltest du denn nun haben? Den Dateinamen oder das Verzeichnis?
Und falls du doch mal cut von rechts nach links benutzen musst:
echo "/home/tmp/user/datei.txt" | rev | cut -d '/' -f 1 | rev
Aber in diesem Fall ist wirklich dirname geeigneter.
Vielen Dank hierfür, das kann ich gut mit zu meinen Akten heften ;)
Nein, ich brauchte nur basename ...
export datei=/home/tmp/user/datei.txt
basename $datei
... mit dem export - befehl hat es dann auch funktioniert.
Vielen Dank für alles an ALLE! :) ... hat mir sehr weiter geholfen.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.