![XML 讀取列並根據日期格式新增數據](https://rvso.com/image/169394/XML%20%E8%AE%80%E5%8F%96%E5%88%97%E4%B8%A6%E6%A0%B9%E6%93%9A%E6%97%A5%E6%9C%9F%E6%A0%BC%E5%BC%8F%E6%96%B0%E5%A2%9E%E6%95%B8%E6%93%9A.png)
我在 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
不用sort
ing。