次のような巨大なテキストファイルがあります。
36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,3
36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,8
36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,14
36,53,15596,0.58454577855,0.26119,2.24878677855,0.116147072052964,12
希望の出力は次のとおりです。
36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-03
36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-08
36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-14
36,53,15596,0.58454577855,0.26119,2.24878677855,0.116147072052964,MI-12
ここと他のコミュニティで他の関連投稿を試しましたが、欲しいものを手に入れることはできません。
修正する
これはクロス問題(私はUnix / perlの答えとバッチ/パワーシェルソリューションが欲しいです。)興味深い答えがあります。
ベストアンサー1
アッ近いスプリント機能機能(前に0を追加):
awk -F, -v OFS=',' '$8=sprintf("MI-%02d",$8);' file
出力:
36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-03
36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-08
36,53,90478,0.58699759849,0.33616,4.83449759849,0.0695335954050315,MI-14
36,53,15596,0.58454577855,0.26119,2.24878677855,0.116147072052964,MI-12
-F,
-,
フィールド区切り文字でカンマを設定します。
$8
- 8番目のフィールドを指します。
%02d
- 関数引数が次のように処理される形式です。2- 数字
ノート、レコードの最後のフィールドはを介してレンダリングできます$NF
。
核因子値が現在のレコードのフィールド数である事前定義された変数。
したがって(あなたの入力について)と$NF
同じです。$8
awk -F, -v OFS=',' '$(NF)=sprintf("MI-%02d", $(NF))' file