使用 sed 将日期格式从 DD/MM/YYYY 更改为 YYYY-MM-DD

Lui*_*des 2 format bash date sed

我正在做:

sed -e 's|\([0-9][0-9]\)/\([0-2][0-9]\)/\([0-9][0-9][0-9][0-9]\)|\3-\2-\1|g' 
Run Code Online (Sandbox Code Playgroud)

但是当我运行该程序时,我收到此错误:

“sed:-e 表达式 #4,字符 62:‘s’命令的 RHS 上的引用 \3 无效”

SLe*_*ort 5

当捕获组未正确转义时,通常会发生此错误。

也就是说,捕获组的括号在您的命令中被转义,因此您可能尝试将其与扩展正则表达式标志(sed -rsed -E)一起使用,以防您不需要转义它。

请注意,为了提高可读性,您可以将字符范围与数字量词结合起来:

sed -E "s|([0-9]{2})/([0-9]{2})/([0-9]{4})|\3-\2-\1|" file
Run Code Online (Sandbox Code Playgroud)