我有一个日期时间戳,例如:
07/May/2012:00:00:01
我希望删除日期和时间之间的冒号并用空格替换它。
我尝试:
sed -e 's/....:../.... ../g' local.csv > local07_nocolon.csv
但这给了我:
07/May/.... ..:00:01
任何提示表示赞赏....
你想只删除第一个冒号然后你可以试试这个
echo "07/May/2012:00:00:01" | sed 's/:/ /'
如果您需要删除所有冒号,请使用此
echo "07/May/2012:00:00:01" | sed 's/:/ /g'
使用捕获组和反向引用(并确保仅匹配数字):
sed -e 's/\([0-9][0-9][0-9][0-9]\):\([0-9][0-9]\)/\1 \2/g' local.csv > local07_nocolon.csv
编辑:我忘记了POSIX ERE 不支持\d
简写。现在它应该可以工作了。
这可能对您有用:
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
下面的 sed 命令使用全局替换标志“g”将所有出现的 : 替换为“”。
sed 's/:/ /g' local.csv > local07_nocolon.csv
文件的输出格式为
07/May/2012 00 00 01