sed パターンマッチ日付

sed パターンマッチ日付

sed を使用してパターン マッチングを使用する方法を理解するのに苦労しています。

dd.mm.yyyy大きなファイル内で、次の日付形式をから に置き換えたいので、dd/mm/yyyy基本的にドットをスラッシュに置き換えます。ファイルには、指定された形式の日付が複数回含まれていますが、文末のピリオドなどを変更してはなりません。

sed 's/\./\//g' <file_name> 

目的は達成されますが、すべての (.) が変更されるため、パターン マッチを実行する何らかの方法が必要です。

ご協力いただければ幸いです。

ありがとう

答え1

これは役に立ちます:

sed 's/\([0-9][0-9]\)\.\([0-9][0-9]\)\.\([0-9]\{4\}\)/\1\/\2\/\3/g' file

説明:

s/                  # substitute
  \([0-9][0-9]\)    # group 1, 2 digits
  \.                # a dot
  \([0-9][0-9]\)    # group 2, 2 digits
  \.                # a dot
  \([0-9]\{4\}\)    # group 3, 4 digits
/
  \1                # content of group 1
  \/                # a slash
  \2                # content of group 2
  \/                # a slash
  \3                # content of group 3
/g                  # global flag

関連情報