The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
Google UNIX.COM


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Help Required: Command to find IP address and command executed of a user loggedout Security 2 08-06-2008 05:12 PM
how to? launch command with string of command line options TinCanFury Shell Programming and Scripting 5 04-28-2008 03:06 PM
inconsistent ls command display at the command prompt & running as a cron job rajranibl Linux 5 07-30-2007 05:26 AM
How to use more than one MPE command STREAM with Unix command in a single shell? bosskr HP-UX 1 10-16-2006 01:16 PM
How to use more than one MPE command STREAM with Unix command in a single shell? bosskr Shell Programming and Scripting 0 09-19-2006 06:44 PM

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #1  
Old 07-20-2007
Registered User
 

Join Date: Jul 2007
Location: South Coast, UK
Posts: 8
Is CUT the right command?

Attempting to pass in-line parameters & values to a shell script, using the CUT command to split a value where a ',' delimiter is used. The format of the passed value will be '00:00:00,00:00:00'.
If I create a file with the contents "12:34:56,12:34:56", using the command
cut -d, -f1 < file
I get back 12:34:56 - so far so good.

However, the script below doesn't work (I've 'echoed' ${OPTARG} and the value is getting into the script OK):

#!/bin/sh

while getopts m: opt
do
case ${opt} in
m) val1=`${OPTARG} | cut -d, -f1`
val2=`${OPTARG} | cut -d, -f2`;;
*) helpmenu;;
esac
done

Can anyone please give me any pointers why not? Total newbie to this so I may well be missing the obvious........
Reply With Quote
Forum Sponsor
  #2  
Old 07-20-2007
Shell_Life's Avatar
Registered User
 

Join Date: Mar 2007
Location: Bahia, Brazil
Posts: 695
Kutz13,
The command 'getopts' is used to process command line arguments
using the '-' (dash) format.

It is not required in your specific situation.

Try the following:
Code:
mVal1=`echo $1 | cut -d, -f1`
mVal2=`echo $1 | cut -d, -f2`
Reply With Quote
  #3  
Old 07-20-2007
Registered User
 

Join Date: Jul 2007
Location: South Coast, UK
Posts: 8
Sorry, maybe my terminology was wrong. What I intended to show were the arguments associated with the command line option '-m'. So that when <filename> -m 123:456,654:321 was entered I could extract into $val1 & $val2 the respective values 123:456 & 654:321.
Reply With Quote
  #4  
Old 07-20-2007
kahuna's Avatar
Registered User
 

Join Date: Apr 2007
Posts: 148
Quote:
Originally Posted by kutz13 View Post
m) val1=`${OPTARG} | cut -d, -f1`
val2=`${OPTARG} | cut -d, -f2`;;
You are missing an echo as illustrated by Shell's code. Try
Code:
    m) val1=`echo ${OPTARG} | cut -d, -f1`
       val2=`echo ${OPTARG} | cut -d, -f2`;;
Reply With Quote
  #5  
Old 07-21-2007
Registered User
 

Join Date: Jul 2007
Location: South Coast, UK
Posts: 8
That's great, issue solved.
Reply With Quote
Google The UNIX and Linux Forums
Reply

Thread Tools
Display Modes




All times are GMT -7. The time now is 02:02 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Complex Event Processing Blog

Content Relevant URLs by vBSEO 3.2.0