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 に答える