Coluna de leitura XML e adição de novos dados com base no formato de data

Coluna de leitura XML e adição de novos dados com base no formato de data

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 awkcomo ....

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 file1vez de sorting.

informação relacionada