使用sed将日期格式更改为

时间:2015-02-07 00:11:34

标签: bash shell date sed format

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

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 个答案:

答案 0 :(得分:1)

你需要在正确的位置使用分隔符(在你的情况下是逗号,但通常是斜杠)。

您还需要反向引用。这些是左侧的项目,包含(转义的)parantheses,右侧可以使用\ 1,\ 2等。

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

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

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

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