我有字符串"001.036.020",我需要将其转换为"1.36.20"。换句话说,我需要删除数字前的所有“0”。是否可以使用 sed 做到这一点?
问问题
599 次
2 回答
3
这个 sed 应该工作:
sed 's/0*\([1-9]\)/\1/g'
编辑:要处理更复杂的情况,例如:
- 数字之间的 0:
- 处理只有 0 的段(将折叠为单个零)
在 Linux 上:
sed -r -e 's/(^|\.)0+([1-9])/\1\2/g' -e 's/(^|\.)(0)0*(\.|$)/\1\2\3/g'
或在 Mac 上:
sed -E -e 's/(^|\.)0+([1-9])/\1\2/g' -e 's/(^|\.)(0)0*(\.|$)/\1\2\3/g'
于 2013-05-15T11:30:16.507 回答
0
echo '001.036.020' | sed 's/^0*//'
于 2013-05-15T11:35:04.600 回答