1

大きなtxtファイルを変更しています。文字列パターンの右側にゼロを埋め込むワンライナーはありますか? たとえば、小数点以下 1 桁または 2 桁から 3 桁に移動します。例えば、0.21 から 0.210 または 0.5 から 0.500 まで? 私が試していたコード:

perl -p -i -e 's/(\.\d{1,2})/\10/g' myFile.txt

助けてくれてありがとう:)

4

2 に答える 2

2

Barmar がコメントで述べたように、を使用sprintfして小数点以下の桁数を指定できます。

perl -p -i -e 's/(\d+\.\d+)/sprintf "%.3f", $1/eg' myFile.txt

ノート:

  • %.3f小数点以下 3 桁の浮動小数点数を意味します。
  • eflag は、置換側を式として評価することを意味します。
  • また、これを機能させるには、数値全体 (小数点以下の数字だけでなく) をキャプチャする必要があることに注意してください。
  • $1\1置換側の代わりに使用されます(これについてはperldoc note hereを参照してください)。
于 2013-07-02T13:09:43.627 に答える