sed 日付形式の問題

sed 日付形式の問題

データセットの日付書式を指定するために使用したsedコマンドがあります。私は構文の理解が不足していると確信している問題に直面しましたが、何が起こっているのかを明確にするのに役立つ人がいるかどうか疑問に思います。

入力する:

26,082619,1300,1,2,0
26,082619,1400,332,8,190
26,082619,1500,442,10,118
26,082619,1600,530,151,12
26,082619,1700,534,164,0
26,082619,1800,538,176,0

注文する

sed -E "s/,(.{2})(.{2})(.{2}),/,\1\/\2\/20\3,/g" input.csv > output.csv

出力(参考3行)

26,08/26/2019,1300,1,2,0
26,08/26/2019,1400,332,8,190
26,08/26/2019,1500,44/2,/2010,118
26,08/26/2019,1600,530,151,12
26,08/26/2019,1700,534,164,0
26,08/26/2019,1800,538,176,0

期待される出力

26,08/26/2019,1300,1,2,0
26,08/26/2019,1400,332,8,190
26,08/26/2019,1500,442,10,118
26,08/26/2019,1600,530,151,12
26,08/26/2019,1700,534,164,0
26,08/26/2019,1800,538,176,0

ベストアンサー1

この質問には2つの側面があります。

  1. 行ベースのコンテキストでは、.次のものと一致します。どの文字 - 埋め込み,

  2. gsedに、1行でできるだけ多くの代替操作を実行するように指示するフラグを使用しました。

したがって、コンマで区切られた6文字の重複しないすべてのシーケンスと一致します。

サンプルデータの場合、最初の一致するシーケンスのみが置き換えられるようにフラグを削除するだけで十分ですが、(カンマ以外の文字)や(ラテン語10進数)などのより具体的な項目に置き換えることもg考慮する必要があります。 。.[^,][0-9]

おすすめ記事