タリウム

タリウム

次のような巨大なテキストファイルがあります。

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

おすすめ記事