On Sun Nov 09 2008 @ 1:31, JC Janos wrote: > I've read that Perl (which I don't know yet at all) is "best" for Text > processing like this. > > The thing is that I need to do this from within a Bash script, and > assign the comma-separated list to a variable in that Bash script. > > Can I even use Perl like this, from inside a Bash script?
I can imagine two ways that you might do this, but neither one strikes me as a good idea. First, you might create a Perl one-liner that could be run just as is from within the shell script. Second, you could create a small, self-contained Perl script, then assign the output from that to a variable in the Bash script. Both alternatives seem error-prone and hackish to me. More importantly, if Bash is a requirement and you don't know any Perl, I can't quite see the value in adding Perl to your current problems. That said, Perl could do what you need to do here pretty easily. In the version below, I stuck the IP addresses into the same file (in the DATA section) for convenience, but it wouldn't be any harder if they were in a separate file. So maybe that's some incentive to learn Perl. Hope this helps, T #!/usr/bin/perl use strict; use warnings; my @addresses; while (<DATA>) { if ( /(!?\d+\.\d+\.\d+\.\d+(?:\/\d+)?)/ ) { push @addresses, $1; } } my $csv = join ",", @addresses; print "$csv"; __DATA__ 1.1.1.1 # comment A 2.2.2.2/29 # comment B !3.3.3.3 # comment C !4.4.4.4/28 # comment D -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/