Date: Mon, 14 May 2001 10:07:14 -0500 From: Tom ONeil <tom.oneil@tacni.com> To: Free <freebsd-isp@freebsd.org> Subject: sed question - the fix. Many thanks to all! Message-ID: <3AFFF4A2.EEEBB0CF@tacni.com>
next in thread | raw e-mail | index | archive | help
I received so many great responses I thought I'd cat them all together
in one post.
Many mega thanks to all.
The Question;
Greetings All;
I have a script that handles our pop numbers and it requires I change
the format of a large poplist we use for input.
This is the format - CA,Anaheim,714,408,4411
and what I need is - CA,Anaheim,714-408-4411
because I don't enough perl to modify the script and I can't figure out
how use sed to do it.
awk will do the substitution, but removes the first 2 commas in the
process.
awk -F, '{print $1,$2,$3,-$4,-$5}' poplist
Thoughts? snippets of code?
Tom
Glenn foster
awk -F , '{print $1","$2","$3"-"$4"-"$5}'
Rowan Crowe
awk -F, '{print $1 "," $2 "," $3 "-" $4 "-" $5}' poplist
Andy
#!/usr/local/bin/perl
while (<STDIN>) {
($a,$b,$c,$d,$e) = split /,/;
print "$a,$b,$c-$d-$e";
}
then do:-
$ cat oldfile | prog > newfile
where "prog" is the name of the perl script
holding those lines at the start of this email.
Regards
Andy
#!/usr/bin/perl
use strict;
my $file = "/patch/to/database";
open FILE, $file;
while (<FILE>) {
chomp;
my @arr = split(/([A-Z]+)\,([a-zA-z]+)\,(\d+)\,(\d+)\,(\d+)/o,
$_); shift(@arr);
print $arr[0] . "," . $arr[1] . "," . $arr[2] . "-" . $arr[3] .
"-" . $arr[4] . "\n";
}
close FILE
Best regards,
Alexei V. Alexandrov
awk -F, '{print $1 "," $2 "," $3 "-" $4 "-" $5}' < poplist
Enno.
bash-2.05# cat blah
CA,Anaheim,714,408,4411
bash-2.05# cat blah | sed 's/\([0-9]\),\([0-9]\)/\1-\2/g'
CA,Anaheim,714-408-4411
it matches a "," surrounded by numbers and replaces the comma with a
dash.
Hope this helps.
andys
--
Thomas J. ONeil tom.oneil@tacni.net
http://www.tacni.net/
"National power, local presence"
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3AFFF4A2.EEEBB0CF>
