sed: 转换日期格式

sed: convert format of date

对 sed 相当陌生。我正在尝试编写一个将日期转换为相反日期的 sed 命令,但如果它们是其他单词的一部分则不会。

到目前为止我有:

sed 's/[0-9]\{1\}/[0-9]\{1\}/[0-9]\{4\}/SUBSTITUTE/g'

正在尝试找出替代部分。谢谢!

您需要使用单词边界。

sed 's~\b\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)\b~//~g' file

示例:

$ echo '04/13/1991hello' | sed 's~\b\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)\b~//~g'
04/13/1991hello
$ echo '02/03/2001' | sed 's~\b\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)\b~//~g'
2001/03/02