staging.inyokaproject.org

Spalte mit bestimmten Wert füllen?

Status: Gelöst | Ubuntu-Version: Server 22.10 (Kinetic Kudu)
Antworten |

rurotil

Anmeldungsdatum:
7. April 2009

Beiträge: 96

Hallo,

ist es irgendwie möglich, das ich eine ganze Spalte mit einem Wert füllen kann? z.b. 19% in Spalte X mit der Überschrift Taxes?

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2119

Das sollte möglich sein. In welchem Format liegen die Daten denn vor?

rurotil

(Themenstarter)

Anmeldungsdatum:
7. April 2009

Beiträge: 96

Ich habe eine CSV Datei

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4212

Welche Spalte soll es denn sein?

rurotil

(Themenstarter)

Anmeldungsdatum:
7. April 2009

Beiträge: 96

ist das wichtig? 😉 Bei mir hier z.B. Spalte 5

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2119

Da es vermutlich zu deinem aus den Threads von hier zusammenkopierten Code mit awk gehört, könnte man sich sowas basteln:

1
awk -F';' -vOFS=';' '$5{ $5 = (NR==1?"Taxes;":"19%;") $5; print }' example.csv

An sich wäre es aber langsam an der Zeit, sich mit einem CSV-Parser zu beschäftigen. Entweder als Kommandozeilen-Tool oder innerhalb einer "richtigen" Programmiersprache. Die meisten gängigen Sprachen haben CSV-Funktionalität entweder schon in der Standardbibliothek integriert oder es lässt sich relativ einfach als externes Modul/Bibliothek nachinstallieren. Das ist dann zwar mehr etwas mehr Code, aber letztlich deutlich lesbarer und flexibler.

rurotil

(Themenstarter)

Anmeldungsdatum:
7. April 2009

Beiträge: 96

Ich kam leider erst heute dazu, es zu testen. Bei mir funktioniert das leider nicht. Danach ist die ganze Tabelle leer. Warum?

rurotil

(Themenstarter)

Anmeldungsdatum:
7. April 2009

Beiträge: 96

Ich habe es nun hinbekommen, das die Tabelle nicht leer ist. Aber mit dem delimiter habe ich hier noch ein Problem. Warum?

"Internal reference";"category";"Name";"Sales Description";"Cost";"Sales Price";"img_url";"Website";"";
"42000010";"TestUserlizenzen";"TestPBS 10 Userlizenzen";"";"380,00";"521,00";"https://test.com/media/c5/e0/76/Lizenz_BSS_10er_800px_AD.jpg";"https://test.com/lizenzen/1759/test-BSS-10-userlizenzen";"";
"13312102";"TestUserlizenzen";"TestPBS 100 Userlizenzen";"";"40,00";"41,30";"https://test.com/media/7f/44/05/test-lizenz-BSS_100user.jpg";"https://test.com/lizenzen/1760/test-BSS-20-userlizenzen";"";

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4212

Kannst Du mal schreiben, welches Kommando Du genau ausführst und wie die Ausgabe dann aussieht.

rurotil

(Themenstarter)

Anmeldungsdatum:
7. April 2009

Beiträge: 96

Preisliste01 ist die Datei vom Beitrag vorher.

awk -F';' -vOFS=';' '$1{ $1 = (NR==1?"Customer Taxes;":"19% Umsatzsteuer;") $1; print }'  /opt/pricelist/preisliste01.csv > /opt/pricelist/preisliste01.csv

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4212

Probier es mal so:

awk -F';' -vOFS=';' '$1{ $1 = (NR==1?"\"Customer Taxes\";":"\"19% Umsatzsteuer\";") $1; print }' /opt/pricelist/preisliste01.csv 

rurotil

(Themenstarter)

Anmeldungsdatum:
7. April 2009

Beiträge: 96

vielen dank, das hat nun funktioniert ☺

Antworten |