Danke fürs Reinschauen, hier gibts was zum Tüfteln.
Ich habe ein Bash Skript, mit welchem ich unter anderem auch den Inhalt eines bestimmten Verzeichnisses ~/foo/ anzeigen lasse. Alle Dateienamen bestehen aus einem einheitlichen Datumsformat (YYYY-MM-DD). Ich möchte nun diese Einträge für mein Skript so indizieren, dass ich sie über deren Index direkt aufrufen kann. Ein kurzer Auszug aus dem Skript:
1 2 3 4 5 6 | ls -1 ~/foo echo "Open which entry?" read DATA if [ -f ~/foo/${DATA} ] ; then vim -p ~/foo/${DATA} fi |
Dieser Teil wird ausgeführt, wenn ich nicht direkt eine der Dateien im Ordner ~/foo/ als Argument angebe. Derzeit kann ich hier den Dateinamen (z.B. 2012-01-09) angeben. Allerdings hätte ich gerne, dass ich als Ausgabe in etwa folgendes erhalte (unter der Annahme, es existieren auch folgende 3 Dateien in dem Ordner):
001: 2012-01-05 002: 2012-01-08 003: 2012-01-09 Open which entry?
Daraus resultierend würde ich diese auch gerne über diesen Index (z.B. 001) ansprechen können, anstatt den Dateinamen bei "read DATA" angeben zu müssen. Eingabe vorher:
Open which entry? 2012-01-09
Gewünschte Eingabe:
Open which entry? 003
Wie kann man das am besten verwirklichen? Glücklicherweise werden alle Dateien in diesem Ordner dieses Namensformat tragen und somit auch stets chronologisch richtig gelistet werden. Ich bräuchte vor allem Unterstützung bei der Stelle, dass für jeden einzelnen Eintrag ein neuer Index erzeugt wird und auch, dass dieser wieder mit der entsprechenden Datei in Verbindung gebracht werden kann. Ein schöner Schmankerl, aber nicht unbedingt notwendig, wäre, wenn ich bei dieser Eingabe auch mehrere Einträge auswählen kann, indem ich z.B. (001 003) zu besagter Stelle eingebe.
Vielen Dank an alle, die sich das durchlesen und vielleicht so manchen Kommentar dazu hinterlassen. Mit Grüßen!