ファイルのミリ秒フィールドを「:」パターンに置き換えたいと思います。
Input:-
Jun 12 2018 3:33:49:000PM
Jun 12 2018 3:33:49:850AM
Desired Output:-
Jun 12 2018 3:33:49.000PM
Jun 12 2018 3:33:49.850AM
私の側で次のSedコマンドを試しましたが、100%の結果が得られませんでした。以下は私のSEDコマンドです。
cat input.txt | sed 's/\(|\|^\|[A-Z]\)\([^|\]*\):\([0-9]\+\)\(AM\|PM\)\(|\|$\)/\1\2.\3 \4\5/g;s/"/ /g;s/:000/.000 /g' >output.txt
ベストアンサー1
努力する:
sed -E 's/:([0-9]+[AP]M$)/.\1/'
私は正規表現に問題があるかどうかを調べようとはしませんでしたが、個人的に必要な場合以外は行の先頭に一致しません。行の終わりだけを一致させるのも高速です。