Nach dem ich bei einer anderen Frage von mir, größer als erhoffbaren Erfolg bei der Beantwortung hatte, will ich es heute gleich noch einmal, mit einer für mich vom Schwierigkeitsgrad lösbaren Frage versuchen.
In der folgenden Frage haben mir dingsbums und vor allem rklm zu zwei Möglichkeiten verholfen, aus einer bestimmte Spalte einer bestimmten Zeile einer csv Datei einen Wert aus zu lesen:
https://forum.ubuntuusers.de/topic/zeile-und-stelle-von-csv-datei-in-bash-ansprec/
Die beiden gefundenen Varianten sehen wie folgt aus:
Variante 1, in der die gewünschte Zelle per Zeilennummer und Spaltennummer angesrochen wird (hier Zeile 2, Spalte 3):
1 2 3 4 5 6 | $ cat datei.csv spalte1, spalte2, spalte3, spalte4, spalte5 Lisa, Simpson, London, Handball, lesen Bad, Simpson, Paris, Fussball, schreiben $ awk -vln=2 -vcol=3 -F ', ' 'NR == ln {print $col;exit 0}' datei.csv London |
Variante 2, in der die gewünschte Zelle, per Zeilennummer und Spaltenüberschrift angesprochen wird (hier Zeile 2,
1 2 3 4 5 6 7 8 | $ cat datei2.csv vorname, nachname, stadt, sportart, hobby Lisa, Simpson, London, Handball, lesen Bad, Simpson, Paris, Fussball, schreiben $ awk -vln=2 -vcol=stadt -F ', ' 'NR == 1 {for (i=1;i<=NF;++i) if ($i==col)idx=i;if(!idx)exit 1} NR == ln {print $idx;exit 0}' datei2.csv London $ awk -vln=2 -vcol=fehlt -F ', ' 'NR == 1 {for (i=1;i<=NF;++i) if ($i==col)idx=i;if(!idx)exit 1} NR == ln {print $idx;exit 0}' datei2.csv $ |
Was ich nun versuche zu finden, sind idealer Weise, die beiden oben benannten Varianten zum lesen eines Wertes, nun in umgekehrten Richtung, in der man jeweils einen Wert in eine bestimmte Zelle einer Zeile schreiben kann.
Meine bisherigen Recherchen waren hierzu praktisch im wesentlichen ohne für mich erkennbare Ansatzpunkte. Als mehr oder weniger bash Laie, fürchte ich, das man keine Zellen einer csv Datei einzeln beschreiben kann und in irgend einer Art und Weise, immer die komplette Datei neu schreiben muß.
Um die Comunity nicht all zu sehr einseitig zu beanspruchen, habe ich mich heute ein wenig an der Beantwortung leichterer unbeantworteter Fragen versucht:
https://forum.ubuntuusers.de/unanswered/