Ungetestet:
t=`basename $f | sed -e 's/-[0-9]\+$//'`
Ich bin neu in der bash-Software und erstelle ein Skript, das die Dateien in einem Verzeichnis durchläuft und basierend auf einem Teil des Dateinamens etwas mit der Datei macht. Bisher habe ich Folgendes:
#!/bin/bash DIR="/Users/me/Documents/import/*" for f in "$DIR" do t=?????? echo "Loading $f into $t..." done
also so $f
etwas ausgeben: /Users/me/Documents/import/time_dim-1272037430173
davon will ich t
gleich aus time_dim
, das verzeichnis kann variable länge haben und -1272037430173
hat eine feste länge (es ist der unix timestamp btw).
Wie gehen Sie am besten vor?
Ungetestet:
t=`basename $f | sed -e 's/-[0-9]\+$//'`
Sie könnten auch tun:
$ t=`basename $f|tr -d '[0-9-]'`
oder$ t=`basename $f|gawk -F- ''`
bearbeitet: Ich habe die Frage falsch gelesen
What is the best way to go about this?
the "best" way, using just bash internals, :)
$ s=/Users/me/Documents/import/time_dim-1272037430173 $ echo $ /Users/me/Documents/import/time_dim $ t=$ $ echo $ time_dim