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/のテキスト出力を変更するには、xpathawkのようにパイプします。

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

出力がすでにソートされている場合はingはcat file1必要ありませんsort

関連情報