Hallo Boris, hallo Leute, Am Freitag, 4. November 2005 08:11 schrieb Boris Höffgen:
Christian Boltz wrote:
Am Donnerstag, 3. November 2005 14:05 schrieb Boris Höffgen: [...]
Eine Zeile im File sieht etwa so aus: "2345","Das ist ein Text","2,45","bla"
Für Ersetzungen in Textdatei schlage ich üblicherweise sed vor - so auch, um das Komma bei "2,45" durch einen Punkt zu ersetzen - aber in diesem Fall (Komma auch als Feldtrenner) dürfte die RegEx reichlich kompliziert ausfallen. Naja, sei's drum, ungetestet: sed 's/^\("[^"]*","[^"]*","[^"]*\)\.\([^"]*","[^"]*"\)/\1.\2/'
Stimmt, mit sed müsste es klappen. Das Obige funktioniert leider nicht, aber ich suche nach dem Fehler.
Der hat mich dann auch interessiert - Ursache war ein dämlicher Denkfehler ;-) Meine RegEx ist soweit OK, nur dass ich eben im Suchausdruck schon nach dem Punkt gesucht hatte :-/ Gefixte Version: # echo '"2345","Das ist ein Text","2,45","bla"' | \ sed 's/^\("[^"]*","[^"]*","[^"]*\),\([^"]*","[^"]*"\)/\1.\2/' "2345","Das ist ein Text","2.45","bla" Teste das aber bitte nochmal mit ein paar mehr Datensätzen. (Falls eine der Spalten selbst Anführungszeichen enthalten kann, wird es allerdings richtig lustig...) Gruß Christian Boltz --
Hilft vielleicht noch etwas anderes? Eine genaue Fehlerbeschreibung. (Glaskugel oder Karten versagen bei technischen Problemen immer, daher packe ich die auch nicht aus). [Helga Fischer in suse-linux]