Bash: Getting first digit of a string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bash: Getting first digit of a string
# 1  
Old 07-17-2014
Bash: Getting first digit of a string

If i'm given a string like "abc-def-1.2.3", how would I return "1"? I'm new to scripting and got stumped on this problem. Thanks in advance!
# 2  
Old 07-17-2014
Is this a homework assignment?
# 3  
Old 07-17-2014
Nope, it's something that I was interested in doing for a small side project. The 123's represent version numbers but I can't get it to just print out the first digit. I'm off school for now haha
# 4  
Old 07-17-2014
Is that string in a shell variable? Then use bash's parameter expansion/Remove matching prefix/suffix pattern:
Code:
A="abc-def-1.2.3"
echo ${A##*-}
1.2.3
B=${A##*-}
echo ${B%%.*}
1

See "man bash"
This User Gave Thanks to RudiC For This Post:
# 5  
Old 07-17-2014
I am sure sed is the tool to use, but just an idea - tr using character classes to delete al non-numerical characters, such as :

Code:
$ echo abc123 | tr -d [:alpha:]
123
$ echo abc123 | tr -d [:alpha:] | cut -c1
1

This User Gave Thanks to migurus For This Post:
# 6  
Old 07-17-2014
hi,

like RudiC using parameter expansion, but not format dependant:
Code:
$ string="abc-def-1.2.3"
$ digits=${string//[^[:digit:]]/}
$ echo ${digits::1} 
1

This User Gave Thanks to daPeach For This Post:
# 7  
Old 07-17-2014
Yes it is. Thanks a lot! Exactly what I was looking for.

Edit: Thanks for all the answers!
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 delete only the last digit in string

Hello, I would like to convert this string KBL3TEST1 into KBL3TEST How can i code this? Any help is appreciated regards, blashyou (6 Replies)
Discussion started by: blashyou
6 Replies

2. Shell Programming and Scripting

convert two digit in to single digit...

Hi Guys. My Input: ABCD 12 00 KL ABCD 12 08 DL ABCD 12 10 KK ABCD 12 04 LL ABCD 13 00 LP ABCD 13 1O LS Output: ABCD 12 0 KL ABCD 12 8 DL ABCD 12 10 KK ABCD 12 4 LL ABCD 13 0 LP (2 Replies)
Discussion started by: pareshkp
2 Replies

3. Shell Programming and Scripting

awk length of digit and print at most right digit

Have columns with digits and strings like: input.txt 3840 3841 3842 Dav Thun Tax Cahn 146; Dav. 3855 3853 3861 3862 Dav Thun Tax 2780 Karl VI., 3873 3872 3872 Dav Thun Tax 3894 3893 3897 3899 Dav Thun Tax 403; Thun 282. 3958 3959 3960 Dav Thun Tax 3972 3972 3972 3975 Dav Thun Tax... (8 Replies)
Discussion started by: sdf
8 Replies

4. Shell Programming and Scripting

Check whether a string begin with uppercase, lowercase or digit!

Hi every body! I wrote script on Fedora (bash shell) to check whether a tring enter from user console is start with a uppercase/lowercase letter or a digit. But with this script i have some problem when I enter from character from 'b' to 'z' --> result is uppercase. This code look like ok but i... (9 Replies)
Discussion started by: nguyendu0102
9 Replies

5. Shell Programming and Scripting

Creating 12 digit string value

Hi Masters, here is my req I have to create a 12 digit string which includes the user i/p Like if user input 2334 then the string will be 233411111111 ,if the user inputs 23345 then the string will be 233451111111 , So we dont know how many digits will the user inputs output will be 12... (16 Replies)
Discussion started by: Pratik4891
16 Replies

6. UNIX for Dummies Questions & Answers

bash script to increment a digit in filename

Hi guys, Can someone help me out with this: I have a directory with files like the following, GHost++ 2010-03-14 04-01 DotaCash RD us_ca LC #7 (44m19s).w3g GHost++ 2010-03-14 04-06 DotaCash AP us_ca LC #8 (42m24s).w3g GHost++ 2010-03-14 04-07 DotaCash AR us_ca LC #10 (08m23s).w3g ... (4 Replies)
Discussion started by: hbjlee17
4 Replies

7. Shell Programming and Scripting

Single digit date to double digit date.

I have a var storing date var=`date` Now the date is returned as Mon Feb 2 00:25:48 PST 2009 Is there any way to check the date field alone ("2" in above case) and if its a single digit then add a prefix 0 to it and store the result in same variable "var" My intention in above case is... (3 Replies)
Discussion started by: villain41
3 Replies

8. Shell Programming and Scripting

Find first digit in string using expr index

I have looked for hours for an answer, so I have decided to request your guidance. I want to substract the first number (series of digits) contained in a string. This string is the output of another command. The substring (number) can be located at any position inside the string. I want to... (4 Replies)
Discussion started by: jcd
4 Replies

9. Shell Programming and Scripting

How to convert a 2 digit to 4 digit

Hi All, How can i convert a number 24 to 0024 In the same way how can i convert 123 to 0123? All this has to be done inside a script Thanks in advance JS (6 Replies)
Discussion started by: jisha
6 Replies

10. Shell Programming and Scripting

Replace one digit by two digit using sed

Folks, Is there a simple way to replace one digit by two digit using sed. Example, mydigit1918_2006_8_8_lag1.csv should be mydigit1918_2006_08_08_lag01.csv. I tried this way, but doesn't work. echo mydigit1989_2006_8_8_lag1.csv|sed 's/]/0]/' Thank you, (5 Replies)
Discussion started by: Jae
5 Replies
Login or Register to Ask a Question