Hallo,
ich versuche ein Shell Script zu schreiben und würde gerne aus einer Datei einen Wert in eine andere Datei schreiben. Mit 'more <dateiname> | grep <Wert>' finde ich die Zeile, in der die gewünschten Angaben stehen. Nämlich: 'Der gesuchte Wert steht hier 20.000 2.536' Jetzt würde ich gerne die 2.536 als Wert in eine andere Datei schreiben. Kann mir jemand sagen, wie ich das mache? Mit dem cut-Befehl konnte ich die entsprechende Position in der Zeile finde (eine weitere pipe ...| cut -b 44-48), aber ich würde ihn lieber anhand von zusammenhängenden Zeichen finden, da aufgrund von mehr oder weniger Stellen auch die Position oder die Anzahl der Leerzeichen mal variieren kann.
ich würde folgendes machen: grep <Wert> Datei |tr -s ' ' |cut -d' ' -f x >datei2 tr -s ' ' macht aus mehreren aufeinanderfolgenden Blanks ein Blank und cut -d' ' zerhackt dann das Ergebnis in einzelne Felder - für x muß jetzt noch angegeben werden, das wievielte Feld gemeint ist! eine weitere Möglichkeit wäre set (ein eingebauter Befehl der Bash - also schneller als die obige Pipe): set ($grep <Wert> Datei) ; echo $5 set zerhackt die gefundene Zeile an den sog White Spaces also Blank u. Tab und gibt das 1. Feld in $1, das 2. in $2 usw. zurück! Grüße Mike -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org