PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Batch - Ersetzen und Löschen Von Text in CSV-Dateien?


ooAlbert
2008-11-30, 15:19:46
Hi,

ich hab hier CSV Dateien, welche NAcheditiert werden müssen, dh. es sollen ersezungen erfolgen.

Beispielsweise alle ", durch "; oder "Y" durch "YES" ersetzen. Außerdem soll immer die erste Zeile gelöscht werden.

Kann sowas eine Batchverarbeitung leisten, wenn ja wie würde sowas gehen?

Die Dateien liegen entsprechedn alle im selben Verzeichnis.

Gast
2008-11-30, 16:32:59
Unter Linux nimmt man (g)awk, unter Windows weiß ich nicht...
(gibts awk auch füe windows?)


# "," durch ";" ersetzen
awk '{if (NR > 1) {gsub(/\,/, ";"); print;} }' CSVfile.csv >> output.txt

# "Y" durch "YES" ersetzen
awk '{if (NR > 1) {gsub(/Y/, "YES"); print;} }' CSVfile.csv >> output.txt

Wenn du mehrere Files hast dann sowas in der Art

for f in *.csv
do
awk 'blabla' "$f" >> "$f"_changed.txt
done


lg

ooAlbert
2008-11-30, 21:27:30
achso, hätt ich dazuschreiben sollen :) es geht um Windows

Gast
2008-11-30, 21:46:09
Ah fein, gawk gibts auch für Windows:
Klickmich (http://gnuwin32.sourceforge.net/packages/gawk.htm)

Come and see what GNU can do for you :)

lg