我有一个日期时间戳,如:
07/May/2012:00:00:01
我希望删除日期和时间之间的冒号,并用空格替换它。
我试试:
sed -e 's/....:../.... ../g' local.csv > local07_nocolon.csv
但那给了我:
07/May/.... ..:00:01
任何提示赞赏....
答案 0 :(得分:2)
您是否只想删除第一个冒号,然后可以尝试此
echo "07/May/2012:00:00:01" | sed 's/:/ /'
如果您需要删除所有冒号,请使用此
echo "07/May/2012:00:00:01" | sed 's/:/ /g'
答案 1 :(得分:1)
使用捕获组和反向引用(并确保仅匹配数字):
sed -e 's/\([0-9][0-9][0-9][0-9]\):\([0-9][0-9]\)/\1 \2/g' local.csv > local07_nocolon.csv
编辑:我忘记了POSIX EREs do not support the \d
shorthand。现在应该可以了。
答案 2 :(得分:0)
以下sed命令使用全局替换标志“g”替换所有出现的:“”。
sed 's/:/ /g' local.csv > local07_nocolon.csv
并且文件的输出将采用
的形式07/May/2012 00 00 01
答案 3 :(得分:0)
这可能对您有用:
echo "07/May/2012:00:00:01" | sed 's/\([0-9]\{4\}\):/\1 /g' file
07/May/2012 00:00:01
或:
echo "07/May/2012:00:00:01" | sed 's/\([[:digit:]]\{4\}\):/\1 /g'
07/May/2012 00:00:01