![](https://seccdn.libravatar.org/avatar/0bf4a1914be3ff06539ea2f7ff45d7b5.jpg?s=120&d=mm&r=g)
On 12/21/2011 06:35 PM, David Haller wrote:
Hallo,
Am Wed, 21 Dec 2011, Andreas Miziolek schrieb: [..]
Mir ist aber grad ein Geistesblitz eingeschlagen. Die Lösung funktioniert bestens:
awk -F';' '{ gsub(/00/,"", $4); print }'< csvfile.csv> test.csv Leider falsch. Das schneidet alle 00 raus, egal wo im 4ten-Feld. Außerdem wird der Feldtrenner geändert. Bsp:
$ echo '1;2;3;00010001001;' | awk -F';' '{ gsub(/00/,"", $4); print }' 1 2 3 01011
Korrekt wäre:
awk 'BEGIN { FS = OFS = ";"; } { sub(/^0+/, "", $4); print; }' csvfile.csv> test.csv
Oder eben:
awk 'BEGIN { FS = OFS = ";" } { $4 = sprintf("%d", $4); print; }' csvfile.csv
Ich würde tippen, daß die sprintf Variante schneller sein könnte. Müßte man testen.
-dnh
Danke David, Das mit dem OFS bin ich dann auch noch draufgekommen. Werde mal auf deinen beiden Lösungen aufbauen. Vielen Dank nachmal. Andy -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org