On Aug 1, 9:28 am, [EMAIL PROTECTED] wrote:
> I'm trying to substitute all comma separated numbers in a text file
> with the same numbers without commas. This expression will match the
> numbers: \d{1,3}?(,\d\d\d)+ but how do i refer to each 3 digit block
> after the commas so i can substitute for them? $1 here just returns
> the last 3 digit number, but i need to substitute for all of them.
> Any help is greatly appreciated.
I guess you want to get rid of commas and put a whitespace instead.
Then simply with:
perl -i.back -pe 's/,/ /g if /\d{1,3}?(,\d\d\d)+/' inputfile
if inputfile contains
234,567,789
123,456,6787,
it will be changed to:
234 567 789
123 456 6787
which is equivalent to:
while (<>) {
chomp;
if (/\d{1,3}?(,\d\d\d)+/) {
s/,/ /g;
print "$_\n";
}
}
but the oneliner above does a backup first (in place editing), just in
case.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/