substring without using expr command


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers substring without using expr command
# 1  
Old 05-15-2010
substring without using expr command

Hi guys,

For some reason the terminal on my mac does not let me run string manipulations commands using the expr command. I'm not sure how to fix this so I'm requesting a "work-around" to using the expr command...

This is the string I'm working with:
"neo_opls01_1.log"

And I'm trying to find the index of the period (.) and extract the prefix. So the substring I want would be:
"neo_opls01_1"

Do you guys know how to do this without using the expr command? Or is there something I need to do to my mac to be able to use string manipulation commands with the expr command? Both suggestions would be really helpful!!

Thanks!!
# 2  
Old 05-15-2010
Hi.

I never use expr anyway - it's a terrible command imo Smilie

Code:
$ X="neo_opls01_1.log"   
$ echo ${X%.*}
neo_opls01_1

This User Gave Thanks to Scott For This Post:
# 3  
Old 05-15-2010
Thanks! Also would you happen to know to just make it:
"neo_opls01_"

basically truncate the number at the end....

Thanks again!!
# 4  
Old 05-15-2010
Code:
$ echo ${X%%1.log}
neo_opls01_

$ echo ${X/?.log/}
neo_opls01_

If it starts getting too fancy, I'd switch to sed!
This User Gave Thanks to Scott For This Post:
# 5  
Old 05-15-2010
I'd agree with scottn on the expr command. Both awk and cut would work too:

Code:
$ echo "neo_opls01_1.log" |awk -F'.' '{print $1;}'
neo_opls01_1
$ echo "neo_opls01_1.log" |cut -d'.' -f1
neo_opls01_1

This User Gave Thanks to curleb For This Post:
# 6  
Old 05-16-2010
Thanks!

How about if I had this:
Code:
"real 449m8.133s"

And I wanted to substring it to only make it:
Code:
"449m8.133s"

Thanks again!

Last edited by Scott; 05-16-2010 at 12:46 AM.. Reason: Code tags
# 7  
Old 05-16-2010
Well, not to be a wise guy, but did you happen to notice that the awk -F and the the cut -d argument pairs define a field delimiter, as did scottn's shell command? Figure your string seems to include one that you could use .

Try it out. Play a little. Let me know how it works. Smilie
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

expr command help

I'm trying to check if a variable'd string is only one character and use that in an if statement the only way I could find is: $expr "${var}" : . # expr STRING : regrep where the "." is the grep wildcard for any single character. Whats wrong with my code here and is there a... (3 Replies)
Discussion started by: Tewg
3 Replies

2. Shell Programming and Scripting

expr command to extract words

how to use expr command to retrieve all the words before the equal sign "=" with shell script (3 Replies)
Discussion started by: 76455
3 Replies

3. Shell Programming and Scripting

help with expr command in script

Hi, I am trying to code a unix function to calculate date difference between two date variables. I am stuck at a point where I am trying to convert hours into minutes. Below is the code I am doing. function get_elapsed_time { export PROPS_FILE=temp.properties export... (8 Replies)
Discussion started by: Nutan
8 Replies

4. Shell Programming and Scripting

expr command

Hi Can anyone explain me the usage of this command and the arguments used here and what will be the expected output : v_num=`expr nav_d_20100204_1759 : '*\(*\)'` what will be the value returned in v_num. Thanks in Advance!!! Regards Naveen Purbia (3 Replies)
Discussion started by: trying_myluck
3 Replies

5. UNIX for Dummies Questions & Answers

using the expr command

Hi friends how can i execute expr $va1 * $var2 provided i m not supposed to use '/' also the nglob variable is turned off. (4 Replies)
Discussion started by: ashishj
4 Replies

6. UNIX for Dummies Questions & Answers

problem with expr command

:) hi Unix gurus, Pls consider the following piece of code str='hello' length=echo $str|wc -c echo $length y= ` expr \( 80 - $length \) ` echo $y :confused: The last echo stmt is displaying 0 as the result. If i put direct value like 6 instead of $length in i 3rd stmt it is giving... (8 Replies)
Discussion started by: ravi raj kumar
8 Replies

7. UNIX for Dummies Questions & Answers

expr command

hi guys.... i hava a command expr... where i m adding a value in a loop like Tc=`expr $Tc\+ $l` where Tc is declred as a variable and every time l contains a new vaue if Tc =0 initially and l =2 Tc should be equal to 0+ 2 and then l = 4 Tc = 2+4 and dispaly as 6 but after... (5 Replies)
Discussion started by: madhu_aqua14
5 Replies

8. Shell Programming and Scripting

about accecing `expr` command

Hi All, I have created 85 users on Linux server. I use bsh shell for all users.But after any user get logged in on unix,he/she is not able to access the expr command.So anyone can tell me that if i have to include some files to access expr command.Because when i write-> expr 6+2 on $ prompt i'll... (1 Reply)
Discussion started by: bhumi
1 Replies

9. UNIX for Dummies Questions & Answers

Problems with expr command

Hi All, I might be making a silly mistake but I need ur help. I have initialized various variables: cur_month=`date +%m` cur_year=`date +%y` last_year=`expr $cur_year \- 1` It works fine for cur_month & cur_year....but has problems with last_year. FOR LAST YEAR IT GIVES A FOLLOWING... (2 Replies)
Discussion started by: rooh
2 Replies

10. UNIX for Dummies Questions & Answers

expr command

I am looking for the correct syntax on the expr command in UNIX. I have a script that I am building at the moment. the script is creating file1 that is an actual .sql file that is going inside the oracle database to get some information in there. It take that information, puts it inside another... (2 Replies)
Discussion started by: wolf
2 Replies
Login or Register to Ask a Question