使用 sed 将 / in 日期格式更改为

Using sed to change / in date format to

我需要使用 sed 将日期格式从 dd/mm/yyyy 更改为 dd.mm.yyyy
我试过这样做:

sed 's,[0-9][0-9]/[0-9][0-9],[0-9][0-9][0-9][0-9],[0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]'

但这显然行不通。如何保持相同的日期,同时只切换期间的斜杠。

您需要将分隔符(在您的情况下是逗号,但通常是斜线)放在正确的位置。

您还需要反向引用。这些是左侧用(转义的)括号括起来的项目,可以在右侧使用 \1、\2 等获得。

sed 's,\([0-9][0-9]\)/\([0-9][0-9]\)/\([0-9][0-9][0-9][0-9]\),..,'

您还可以通过指示要在(转义的)大括号内匹配的字符数来缩短语法:

sed 's,\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\),..,'

对于您的特定情况,使用 tr '/' '.' 而不是 sed 会更简单,以获得相同的效果。