特定のフィールドから先行ゼロを削除

特定のフィールドから先行ゼロを削除

複数のフィールドを持つファイルがありますが、すべての列ではなく、2番目の列(B列)の先行ゼロのみを削除したいと思います。試してみましたが、うまくsed 's/^0//g' filename > new_filenameいきません。

データ例:

A B C D E
2 02 56 0.987 0.332
1 09 67 0.567 0.243
9 06 37 0.523 0.263
0 10 47 0.378 0.875

希望の出力:

A B C D E
2 2 56 0.987 0.332
1 9 67 0.567 0.243
9 6 37 0.523 0.263
0 10 47 0.378 0.875

答え1

awkこれを行うには、次を選択します。

awk 'FNR > 1 {$2 = sprintf("%d", $2)};1' <file

または:

awk 'FNR > 1 {$2 += 0};1' <file

または:

awk '{sub(/^0+/, "", $2)};1' <file

関連情報