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

相關內容