On Mon, Dec 18, 2006 at 05:01:29PM +1100, Jacinta Richardson wrote:
> Sonia Hamilton wrote:
>
> > $ cat program
> > #!/bin/bash
> > while IFS=: read qnumber question answer ; do
> > echo "Question number $qnumber"
> > echo "$question"
> > echo "$answer"
> > echo
> > done < questions.txt
>
> Excellent work Sonia. Here's the same program in Perl.
>
> -------------------
> 1: #!/usr/bin/perl -w
> 2: use strict;
> 3:
> 4: push @ARGV, 'questions.txt'; # optional
> 5:
> 6: while(<>) {
> 7: my ($qnumber, $question, $answer) = split ':';
> 8:
> 9: print "Question number $qnumber\n$question\n$answer\n";
> 10: }
> -------------------
Haven't seen the previous emails but what about
sed -e 's/\([^:]*\):\([^:]*\):\(.*\)/Question number \1\n\2\n\3'
or even
awk -F : '/^.+$/ {print "Question number "$1"\n"$2"\n"$3}'
>
> To make this work over any question file, we can remove the "push" on the
> fourth
> line, and call the program with the file as an argument:
>
> program questions.txt
>
> The first line says to use Perl for the script and to turn on warnings. The
> second line says to use the "strict" pragma which will help identify
> typographical errors (eg $qmunber instead of $qnumber) and a few other common
> mistakes.
>
> The fourth line tells Perl that we want to add the "questions.txt" file to our
> argument list (or we can just pass the filename in on the command line). The
> sixth line tells Perl to open the files passed in on the command line and to
> loop through them line by line. The seventh line splits the current line on
> ':'
> and assigns the parts to variables. The 9th line prints it all out.
>
> The output and calling conventions are the same.
>
> All the best,
>
> J
>
> --
> ("`-''-/").___..--''"`-._ | Jacinta Richardson |
> `6_ 6 ) `-. ( ).`-.__.`) | Perl Training Australia |
> (_Y_.)' ._ ) `._ `. ``-..-' | +61 3 9354 6001 |
> _..`--'_..-_/ /--'_.' ,' | [EMAIL PROTECTED] |
> (il),-'' (li),' ((!.-' | www.perltraining.com.au |
> --
> SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
> Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html
>
signature.asc
Description: Digital signature
-- SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/ Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html
