使用sed转换时间格式

使用sed转换时间格式

我想更改文件格式 来源: 00:00:03006 至: 00:00:03,006

sed -i 's/[0-9][0-9] [0-9][0-9][0-9]/[0-9][0-9],[0-9][0-9][0-9]/g' file

不起作用。它找到这些文本,但不会替换为原始数字。

答案1

这应该有效:

sed -E -i 's/([0-9][0-9]) ([0-9][0-9][0-9])/\1,\2/g' file

解释

当你写的时候

[0-9][0-9],[0-9][0-9][0-9]

在命令的第二部分中sed,您不是说“替换为输入的数字”,而是说“替换为一些数字”,所以sed无法理解你想用什么来代替。

使用正则表达式组(检查这个简单的解释)会说sed“使用精确的您输入的数字”。

答案2

尝试:

sed -ri 's/([0-9]{2}) ([0-9]{3})/\1,\2/g' file

相关内容