sed:转换日期格式

时间:2015-03-05 04:45:50

标签: date sed substitution

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

到目前为止,我有:

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

试图找出替代部分。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要使用字边界。

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

示例:

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