1

我有字符串"001.036.020",我需要将其转换为"1.36.20"。换句话说,我需要删除数字前的所有“0”。是否可以使用 sed 做到这一点?

4

2 回答 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 回答