Ich würde, wie weiter oben vorgeschlagen, nicht nur das € rauskürzen, sondern auch die den Betrag umschließenden ", da eine Zahl das nicht braucht.
Den Dezimaltrenner , sollte Excel dann aufgrund der Umgebungseinstellung korrekt erkennen.
Bei mir klappt das jedenfalls problemfrei. Ich verwende dazu aus dem Menüband "Daten" die Funktion "Aus Text/CSV"
Also: Aus "123,45 €" soll 123,45 werden.
Damit wird das Suchen/Ersetzen-Muster (aka "regulärer Ausdruck") aber aufwändiger.
Die Schreibweise des regulären Ausdrucks hängt auch noch stark ab von der verwendeten/ausgelieferten Variante von sed.
Ich weiß nicht, was Apple da aktuell liefert.
Bei mir ist es aktuell GNU sed 4.8 von Debian (bin also nicht auf dem Mac unterwegs).
Hier muss ich ein paar Zeichen mehr maskieren (mit \ versehen), damit es funktioniert. Konkret sind das die runden Klammern und die + Zeichen.
Bei mir funktioniert (ich teste mit echo statt mit einer Datei und schicke mit der Pipe | die Ausgabe an das Programm sed):
Code:
echo '"ABC";"123,45 €"' | sed -e 's/"\([[:digit:]]\+,[[:digit:]]\+\) €"/\1/'
"ABC";123,45
Kurze Erklärung:
sed -e 's/Suchausdruck/Ersetzung/'
Da auch " gefunden werden sollen, arbeite ich zum Umschließen des regulären Ausdrucks mit '
Suchausdruck:
"\([[:digit:]]\+,[[:digit:]]\+\) €"
[[:digit:]] sucht eine Zahl 0-9
+ ist ein Platzhalter für "beliebig viele"
also ist [[:digit:]]\+ "beliebig viele Zahlen", beachte den \, ohne den es in meiner Version nicht funktioniert.
() merkt sich den Treffer des Ausdruckt in der runden Klammer, bei mir ist das dann \( Zahlen mit einem Komma drin \)
Man kann mit vielen Klammerungen viele Variablen erzeugen, auf die dann beim Ersetzen zurückgegriffen werden kann.
Konkret: \([[:digit:]]\+,[[:digit:]]\+\) "merke dir Zahlen Komma Zahlen", also hier: 123,45
Ersetzung:
\1
Setze den mit dem ersten Klammerpaar () gemerkten Wert ein.