ForumBash awk Verständnis-Frage
Josef Federl – Samstag, 22. Juli 2017 17:46 Uhr

#!/bin/bash
# Skriptdateiname = test.sh
spaltennummer=10
wert=zehner
awk ‘{ $’$spaltennummer’ = VAR; print }’ FS=’,’ OFS=’,’ “VAR=${wert}” daten.csv
___________________________________________________________________________________
In der Konsole:
___________________________________________________________________________________
[root@rechner]# ./test.sh >> daten.csv
[root@rechner]# cat daten.csv
07212222,,esfunzt,,,,,,,,,,
07212222,,esfunzt,,,,,,,zehner,,,
[root@rechner]# ./test.sh > daten.csv
[root@rechner]# cat daten.csv

__________________________________
Frage:
__________________________________
Will ich statt mit >> an die Datei anhängen,
die Datei mit > mit der einen Zeile überschreiben,
ist sie plötzlich leer.
Wieso?
Danke.

1 Antwort
Siegfried Schnieders – Montag, 24. Juli 2017 10:35 Uhr

Es wirkt erst die Ausgabeumleitung “>” und erzeugt eine neue leere Datei, in diesem Fall mit dem Namen der vorhandenen Datei. Danach arbeitet das awk-Skrikt auf der leeren Datei.

Josef Federl – Montag, 24. Juli 2017 12:11 Uhr

AHHH,
Das heist die Datei die von awk gelesen werden soll, wird kurz vorher durch das > dateiname.
mit “”
also NICHTS
überschrieben.
Habs kapiert
Danke.