mail(at)adminradio.de wrote:
> mit Hilfe eines AWK-Skriptes möchte ich gern die erste Zeile einer
> CSV-Datei aufräumen, sprich Anführungszeichen und Sternchen entfernen. Das
> hatte ich mir wie folgt gedacht:
>
> BEGIN {}
Wenn der Begin-Block leer ist, kannst Du das auch ganz
weglassen.
Aber hier fehlt eine geschweifte Klammer "{" für den
nachfolgenden Block.
> if (NR == 1) {
>
> # Aufräumen
> gsub(/\"/, //, $0) # Tüddelüh mit Nichts ersetzen
> gsub(/\*/, //, $0) # Sternchen mit Nichts ersetzen
Das zweite Argument für gsub() ist ein String, kein Regex.
(Die unerwarteten Zahlen kommen daher, weil ein Regex einen
Boolean-Wert als Ergebnis liefert, d.h. 1 für Match und 0
für Mismatch.)
Außerdem kann man beide Ersetzungen zusammenfassen, und $0
ist auch der Default für das dritte Argument. Also ganz
einfach:
gsub (/["*]/, "")
> # Array anlegen
>
> for ( i=1; i <= NF; i++) {
>
> colname[i] = $i
>
> }
Anstelle dieser for-Schleife kannst Du auch schreiben:
split ($0, colname)
> } else {
> # Hübsche Dinge mit allen anderen Zeilen machen
> }
.. und hier gehört noch eine geschweifte Klammer "}" hin.
> END {}
.. und das ist natürlich auch übeflüssig.
Also nochmal komplett:
{
if (NR == 1) {
gsub (/["*]/, "")
split ($0, colname)
}
else {
...
}
}
Gruß
Olli
-- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing Handelsregister: Amtsgericht Muenchen, HRA 74606, Geschäftsfuehrung: secnetix Verwaltungsgesellsch. mbH, Handelsreg.: Amtsgericht München, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart FreeBSD-Dienstleistungen/-Produkte + mehr: http://www.secnetix.de/bsd I suggested holding a "Python Object Oriented Programming Seminar", but the acronym was unpopular. -- Joseph Strout To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Wed 17 Apr 2013 - 16:35:09 CEST