PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit sed Sonderzeichen aus einer bestimmten Spalte entfernen



e271
12-08-2015, 13:17
Hi,

ich habe eine sehr große csv-Datei vorliegen, die das folgende Format hat:

Name;Typ;Kurs;G1;G2...
"Müller, Thomas";KAR;E 2/3ß$;ALR;3sd...

Ich möchte jetzt mit sed aus der dritten Spalte (Kurs) alle nicht-Buchstaben, nicht-Ziffern sowie Umlaute entfernen, alle anderen Spalten aber so beibehalten.

Wie gelingt mir das am besten?

Vielen Dank im Voraus

e271

PS: Wie ich mit sed Zeichen entfernen kann weiß ich schon. Allerdings weiß ich nicht, wie ich das nur auf die dritte Spalte beschränken kann.

fork
12-08-2015, 23:15
Hallo e271,

mit einem herzlichen Willkommen begrüße ich Dich als 2. Mitglied, dass im August einen Beitrag ins Scriptsprachenforum schreibt.

Da hole ich doch glatt zur Feier des Tages mal die Gitarre raus.

(__o_)====:::l

---

Zum Problem: Na ich würde sagen, Wege gibt's da viele, aber mit awk geht das bestimmt am einfachsten. Ich kann allerdings nur sehr begrenzt awk.

irgendwie so was:



awk -F; '{print $1;$2;loeschfunktion("alles was nicht(buchstabe oder ziffer ist" von $3);$4;$5,.....}' datei.txt >datei-neu.txt


Die Frage ist für mich, ob Du die Zeichen wirklich alle löschen willst, statt eher zu ersetzen(z. B. ß durch ss).

Mangels Kenntnis kann ich Dich also nur auf die Doku verweisen, die es bestimmt zu Hauf im Netz gibt.

Alternativ kann man das auch mit einem kleinen Script mit cut, set und tr oder sed lösen.