[wellylug] BASH scripting help required

Darryl Hamilton wellylug at addict.net.nz
Fri May 7 12:03:06 NZST 2004


Jamie Dobbs wrote:
> True, Perl would be one way to do it, but not an option in this case.

There's bound to be a better way to do this, but this does the job

#!/bin/sh
 

for file in $( ls )
do
   firstChar=$(echo $file | sed -r 's/^(.)/\1/')
   echo $firstChar;
done


> -----Original Message-----
> From: David Antliff [mailto:dave.antliff at paradise.net.nz]
> Sent: Friday, 7 May 2004 11:29 a.m.
> To: wellylug at lists.naos.co.nz
> Subject: Re: [wellylug] BASH scripting help required
> 
> 
> On Fri, 7 May 2004, Jamie Dobbs wrote:
> 
> 
>>I have a script that does some file manipulation then sends a file
> 
> out of
> 
>>the serial port.
>>Each file is reference as $file (via a for 'file in <filespec>'
> 
> type setup).
> 
>>What I need to do is to be able to test on the first character of
> 
> the
> 
>>filename and process something accordingly - ie. if the first
> 
> character is
> 
>>'L' then do one thing, if it is 'P' do another etc. My skills at
> 
> string
> 
>>manipulation in Unix/BASH are terrible (at best) and I wonder if
> 
> someone
> 
>>caqn give me some pointers on how to do this.
> 
> 
> Sounds like the perfect excuse to learn some basic Perl :)
> 
> One (of many) ways to do this is:
> 
> if ($file =~ /^L/) {
>   ...
> } elsif ($file =~ /^P/) {
>   ...
> }
> 
> Perl is *really* good at string manipulation.
> 
> Cheers,
> David.
> 
> 




More information about the wellylug mailing list