如题
如何将字符串 2015/02/03/21:48:50 第一个'/'变成空格
通常用sed处理首先会想到下面这种办法,但这是借助了sed特殊的引用方法,并非完全由正则表达式匹配到指定目标
点击(此处)折叠或打开
-
[root@oracle ~]# echo 2015/02/03/21:48:50|sed 's/\// /1' -r
- 2015 02/03/21:48:50
下面是完全使用正则表达式匹配的结果
点击(此处)折叠或打开
-
[root@oracle ~]# echo 2015/02/03/21:48:50|sed 's/([^/]*)\/(.*)/\1 \2/' -r
- 2015 02/03/21:48:50
再看如何将字符串 2015/02/03/21:48:50 最后一个'/'变成空格
如果采用下面这种办法,精确匹配到了第三个'/'但扩展性大打折扣如果文本中有多个类似的时间需要做修改而时间格式分好几种时,此时就不确定最后一个'/'是否为第三个
点击(此处)折叠或打开
-
[root@oracle ~]# echo 2015/02/03/21:48:50|sed 's/\// /3' -r
- 2015/02/03 21:48:50
这时我们可以采用正则匹配的办法
点击(此处)折叠或打开
-
[root@oracle ~]# echo 2015/02/03/21:48:50|sed 's/(.*)\/(.*)/\1 \2/' -r
- 2015/02/03 21:48:50