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
出力がすでにソートされている場合はingはcat file1
必要ありませんsort
。