I have a huge text file which look like this:
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
The desired output is this:
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
I have tried other relevant posts here and on other communities but could not exactly get what I want.
UPDATE
This is the cross-question (I wanted both Unix/perl answers and batch/powershell solutions for this.) that has interesting answers.
Here is a
cmd
batch file that relies on a nice hack to split off the last item of a comma-separated list, independent on how many commas occur in the string. The basic technique is shown in the following; note that this requires delayed expansion to be enabled:So here is the code of the script, holding the above method in a sub-routine called
:GET_LAST_ITEM
:This is the answer that @RomanPerekhrest provided at my cross-question (seeking unix/perl solutions) here:
The next code does what you want except for filling with zero the last token when is less than
10
, hope it helps.EDIT: I figured out a way to insert a leading zero when the last number is less than 10. A little bit ugly but does it. :)
For file (f.txt in this case):
Produces the following result (also in f.txt): updated
Here's a PowerShell answer in case you like PS.