使用 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 会更简单,以获得相同的效果。
我需要使用 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 会更简单,以获得相同的效果。