如何替换2016-12-30T09:42:14
日期格式中的 T?
预期格式:2016-12-30 09:42:14
答案1
echo 2016-12-30T09:42:14 \
| sed 's/\([0-9]\{4\}-[0-9][0-9]-[0-9][0-9]\)T\([0-9][0-9]:[0-9][0-9]:[0-9][0-9]\)/\1 \2/'
[0-9]
匹配任意数字\{4\}
表示前面的内容应该恰好出现 4 次(短于[0-9][0-9][0-9][0-9]
)\(...\)
\1
创建一个捕获组,捕获组可以通过它们的编号(\2
等)来引用
答案2
echo 2016-12-30T09:42:14 | sed -re 's/(-[0-9]{2})T([0-9]{2}:)/\1 \2/g'
-r
意味着您不需要\
's -> 更易于阅读
-<two digits>T<two digits>:
不太可能给出错误匹配
结果:更短且更易于维护。
答案3
我不确定你的输入文本是什么,但如果你确定你的格式看起来像你显示的那样,最简单的代码是
echo "2016-12-30T09:42:14" | sed -e 's/T/ /g'