Hallo, Am Thu, 27 Jan 2005, Wolfgang Erlenkötter schrieb:
Am Donnerstag, 27. Januar 2005 19:49 schrieb maX Bauer:
ich suche ein (bzw. DAS) Programm (ich weiss, dass es da eines gibt) ähnl. "tail", mit dem ich einen gegebenen Dateinamen auf die ersten zwei Zeichen kürze, und diese dann in eine Variable übernehme.
Im Gegensatz zu "tail" oder "head", möchte ich aber den Dateinamen und nicht dessen Inhalt abfragen. Meine erste Idee war "test", aber damit fragt man meines Wissens (und des Wissens von "man") ab, ob die Datei überhaupt vorhanden ist. (oder eben nicht)
Beim Googlen kam auch nicht wirklich was rum, aber ich glaube, ich stehe einfach mal wieder auf dem Schlauch (ist ja schon recht spät am Tag)
Warum in die Ferne schweifen? Schau in die Manpage zur Bash. Stichwort substitution:
HIER=HALLO echo ${HIER:0:3} HAL
Was will man mehr?
*ARGH* $ zgrep ':.:' `man -w bash` A sample value is ``.:~:/usr''. Kein Wunder, dass ich auf diese Version nicht gekommen bin. Das ist dann natuerlich die schnellste (da bash-interne) Version: dateiname="foo bar.txt"; var="${dateiname:0:2}"; echo "$var" Aber, im Gegensatz zu den von mir aufgezaehlten Varianten ist obige nicht unbedingt portabel (nachschauen / ausprobieren), auch die mit expr ist u.U. nicht portabel. Die Loesungen mit cut, dd, sed, awk und perl sind aber portabel (aber langsamer, und die mit perl sind eh nur akademischen Interesses, denn in einem shell-script perl aufzurufen ist kontraproduktiv, wenn man schon perl braucht braucht sollte/kann man gleich alles in perl implementieren (und ggfs. von perl aus anderes aufrufen). ;) -dnh -- The correct answer is a grunt, followed by ripping the offender open. HTH. -- Shalon Wood