XML 讀取列並根據日期格式新增數據

XML 讀取列並根據日期格式新增數據

我在 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

這些列是

   Client Name  Creation Date   Due Date    Date Paid   Subtotal    Credit  Total   Status  Payment Method

我需要將此數據轉換為以下內容。在開始處新增的新列將是產生發票的日期,後面跟著它們在我的文件中的順序的當天的數字順序,而不是時間,例如 13:21。每天應該從 1 點開始。

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

我怎樣才能做到這一點?最好使用 perl,但任何東西都可以。

答案1

如果您只想修改xml/的文字輸出xpath,則將其透過管道傳輸,awk如 ....

sort -k2 file1 | awk '{head[$2]++;print $2"-"head[$2], $0}'

輸出

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

如果你的輸出已經排序,那就cat file1不用sorting。

相關內容