Remove a character and assign result to a variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Remove a character and assign result to a variable
# 1  
Old 06-19-2015
Remove a character and assign result to a variable

I am reading lines from a file that contain a number sign (#) before a three or four digit number:

Code:
#1043
#677

I can remove the '#' and get just the number. However, I then want to assign that number to a variable and use it as part of a path further on in my program:

Code:
/mydir/10/1043 for example

print -n {$second#?} gives me the 1043 but I have been unsuccessful assigning this result to a variable - I tried company = {$second#?} but company has no value.

I'm new to this, so any help would be appreciated.

Last edited by Don Cragun; 06-19-2015 at 09:25 PM.. Reason: Add CODE AND ICODE tags.
# 2  
Old 06-19-2015
You can use like below ,a is the file name
Code:
>cat a
#1043
#677
>while read num junk ; do var=`echo ${num#\#}`; echo $var; done < a
1043
677


Last edited by Don Cragun; 06-19-2015 at 09:27 PM.. Reason: Add CODE and ICODE tags.
# 3  
Old 06-19-2015
I see num is the variable; what is junk?
# 4  
Old 06-19-2015
Its just a variable ,added to take any other input that may present in the file ,
like
Code:
#1043 asd #Here asd will go to junk

If you are sure you have only one word per line ,you can skip this.

Last edited by Don Cragun; 06-19-2015 at 09:28 PM.. Reason: Add CODE tags, again.
This User Gave Thanks to Khanaza For This Post:
# 5  
Old 06-19-2015
Quote:
Originally Posted by KathyB148
[...]
print -n {$second#?} gives me the 1043 but I have been unsuccessful assigning this result to a variable - I tried company = {$second#?} but company has no value.

I'm new to this, so any help would be appreciated.
Code:
printf -v number "%s" ${second#\#}

Now, what you want lives in a variable named `number'
This User Gave Thanks to Aia For This Post:
# 6  
Old 06-19-2015
Code:
company=${second#\#}

(And var=${num#\#})
No space around the =!
printf -v var only works in bash.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to print last character of hostname and assign to a variable ?

Hi How to pass echo output to a variable ? Does below awk command will get the last character of hostname and assign to a variable - "svr" ? svr=$( echo `hostname` | awk '{print substr($0,length,1)}' ) Thanks. Please use CODE tags when dsplaying code segments, sample input, and sample... (7 Replies)
Discussion started by: Lim
7 Replies

2. Shell Programming and Scripting

Assign awk gsub result to a variable

Hello, I have searched but failed to find what exactly im looking for, I need to eliminate first "." in a output so i can use something like the following echo "./abc/20141127" | nawk '{gsub("^.","");print}' what i want is to use gsub result later on, how could i achieve it? Let say... (4 Replies)
Discussion started by: EAGL€
4 Replies

3. Shell Programming and Scripting

Assign the result of a multiline command to a variable

Hi, I have the following command that lists all the .o files from all the directories except of vwin (which I don't want it) for i in `ls -d */*.o|awk '$0 !~ "vwin"'`; do echo $i; done The result is something like that dir1/file1.o dir1/file2.o dir2/file3.o etc. So, I want to create a... (9 Replies)
Discussion started by: scor6800
9 Replies

4. Shell Programming and Scripting

Assign a variable the nth character of a string.

I see a millioin ways to do this with echo, but what I wan to do is assign a variable the "nth" character of an incoming parameter to a ksh script. $1 will be "pia" I need to assign the first character to stmttype. (10 Replies)
Discussion started by: klarue
10 Replies

5. UNIX for Dummies Questions & Answers

Assign SQL result in shell variable

Hi im trying to assign the result of the db2 command to a variable inside a shell script... : tab_cnt=`db2 "select count(*) from syscat.tables where tabname = 'ABC' and tabschema = 'MATT01'" |head -4|tail +4|cut -c 11` : echo $tab_cnt when i echo im getting a blank value.. im expecting... (1 Reply)
Discussion started by: matt01
1 Replies

6. Shell Programming and Scripting

Assign result to variable

Hi friends, firstly, i can run following expression and i took 100 value. sqlplus -s username/password@TTTEST @umt.sql umt.sql exists "select t.deger from parametre t where t.id=30". result of this query =100 i need to assign this value(100) to variable(for example x... (2 Replies)
Discussion started by: temhem
2 Replies

7. Shell Programming and Scripting

How to assign the result of a SQL command to more than one variable in shell script.

Hi Friends... Please assist me to assign the result of a SQL query that results two column, to two variables. Pls find the below code that I write for assigning one column to one variable. and please correct if anything wrong.. #! /bin/sh no=' sqlplus -s uname/password@DBname... (4 Replies)
Discussion started by: little_wonder
4 Replies

8. Shell Programming and Scripting

read and assign each character from the string to a variable

How... can I read input by a user character by cahracter. And assign each character from the string to a variable? Any help would be greatly appreciated! Thank you! (1 Reply)
Discussion started by: Tek-E
1 Replies

9. Shell Programming and Scripting

assign awk command result to a variable

#!/bin/sh # ## MYSTRING = `awk '/myApp.app/' /Users/$USER/Library/Preferences/loginwindow.plist` if then echo String not found defaults write /Users/$USER/Library/Preferences/loginwindow AutoLaunchedApplicationDictionary -dict-add -string Hide -bool YES -string Path -string... (9 Replies)
Discussion started by: dedmakar
9 Replies

10. Shell Programming and Scripting

assign subst|grep|sed command result to a variable

Hi, I'm quite new to scripting and I want to modify following line of an existing script: MYVAR=`subst |grep 'L:\\\:' | sed -e 's/.*\\\//'`; What I have to do is to use the content of a variable instead of the constant expression 'L:\\\:' as the grep string to be matched. Assuming I already... (5 Replies)
Discussion started by: snowbiker99
5 Replies
Login or Register to Ask a Question