文字列"001.036.020"があり、それを"1.36.20"に変換する必要があります。言い換えれば、数字の前の「0」をすべて削除する必要があります。sedを使用してこれを行うことは可能ですか?
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 に答える