![Coluna de leitura XML e adição de novos dados com base no formato de data](https://rvso.com/image/169394/Coluna%20de%20leitura%20XML%20e%20adi%C3%A7%C3%A3o%20de%20novos%20dados%20com%20base%20no%20formato%20de%20data.png)
Eu tenho os seguintes dados em um documento XML
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
As colunas são
Client Name Creation Date Due Date Date Paid Subtotal Credit Total Status Payment Method
Preciso converter esses dados para o seguinte abaixo. A nova coluna adicionada no início seria a data em que a fatura foi gerada seguida pela ordem numérica daquele dia com base na ordem em que estão no meu documento, não no horário, por exemplo, 13h21. Cada dia deve começar às 13h.
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
Como posso fazer isso? De preferência com perl, mas qualquer coisa funcionará.
Responder1
Se você deseja apenas alterar a saída de texto do seu xml
/ xpath
, canalize-a awk
como ....
sort -k2 file1 | awk '{head[$2]++;print $2"-"head[$2], $0}'
Saída
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
Se sua saída já estiver classificada, em cat file1
vez de sort
ing.