我需要使用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]'
但这显然不起作用。如何只保留相同的日期,同时只切换期间的斜杠。
答案 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以获得相同的效果会更简单。