![XML-Spalte lesen und neue Daten basierend auf dem Datumsformat hinzufügen](https://rvso.com/image/169394/XML-Spalte%20lesen%20und%20neue%20Daten%20basierend%20auf%20dem%20Datumsformat%20hinzuf%C3%BCgen.png)
Ich habe folgende Daten in einem XML Dokument
NAME 19/02/2019 23/02/2019 23/02/2019 13:21 12.99 0 12.99 Paid PayPal
NAME 19/02/2019 23/02/2019 23/02/2019 13:22 12.99 0 12.99 Paid PayPal
NAME 22/02/2019 23/02/2019 23/02/2019 13:23 12.99 0 12.99 Paid PayPal
NAME 23/02/2019 23/02/2019 23/02/2019 13:24 12.99 0 12.99 Paid PayPal
NAME 23/02/2019 23/02/2019 23/02/2019 13:25 12.99 0 12.99 Paid PayPal
NAME 23/02/2019 23/02/2019 23/02/2019 13:26 12.99 0 12.99 Paid PayPal
Die Spalten sind
Client Name Creation Date Due Date Date Paid Subtotal Credit Total Status Payment Method
Ich muss diese Daten wie folgt konvertieren. Die neue Spalte, die am Anfang hinzugefügt wird, enthält das Datum, an dem die Rechnung erstellt wurde, gefolgt von der numerischen Reihenfolge für diesen Tag, basierend auf der Reihenfolge, in der sie in meinem Dokument stehen, nicht die Uhrzeit, z. B. 13:21. Jeder Tag sollte wieder bei 1 beginnen.
19-02-2019-1 NAME 19/02/2019 23/02/2019 23/02/2019 13:21 12.99 0 12.99 Paid PayPal
19-02-2019-2 NAME 19/02/2019 23/02/2019 23/02/2019 13:22 12.99 0 12.99 Paid PayPal
22-02-2019-1 NAME 22/02/2019 23/02/2019 23/02/2019 13:23 12.99 0 12.99 Paid PayPal
23-02-2019-1 NAME 23/02/2019 23/02/2019 23/02/2019 13:24 12.99 0 12.99 Paid PayPal
23-02-2019-2 NAME 23/02/2019 23/02/2019 23/02/2019 13:25 12.99 0 12.99 Paid PayPal
23-02-2019-3 NAME 23/02/2019 23/02/2019 23/02/2019 13:26 12.99 0 12.99 Paid PayPal
Wie kann ich das machen? Am besten mit Perl, aber alles funktioniert.
Antwort1
Wenn Sie lediglich die Textausgabe von xml
/ ändern möchten xpath
, leiten Sie sie awk
wie folgt weiter …
sort -k2 file1 | awk '{head[$2]++;print $2"-"head[$2], $0}'
Ausgabe
19/02/2019-1 NAME 19/02/2019 23/02/2019 23/02/2019 13:21 12.99 0 12.99 Paid PayPal
19/02/2019-2 NAME 19/02/2019 23/02/2019 23/02/2019 13:22 12.99 0 12.99 Paid PayPal
22/02/2019-1 NAME 22/02/2019 23/02/2019 23/02/2019 13:23 12.99 0 12.99 Paid PayPal
23/02/2019-1 NAME 23/02/2019 23/02/2019 23/02/2019 13:24 12.99 0 12.99 Paid PayPal
23/02/2019-2 NAME 23/02/2019 23/02/2019 23/02/2019 13:25 12.99 0 12.99 Paid PayPal
23/02/2019-3 NAME 23/02/2019 23/02/2019 23/02/2019 13:26 12.99 0 12.99 Paid PayPal
Wenn Ihre Ausgabe bereits sortiert ist, verwenden Sie einfach cat file1
anstelle von sort
ing.