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>