to find numbers in a string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting to find numbers in a string
# 8  
Old 11-22-2007
Code:
grep  '^9[0-9][0-9][0-9]$' <(printf "%s\n" $s)

Or GNU grep:

Code:
grep -oE '\b9[0-9]{3}\b' <(printf "$s")

# 9  
Old 11-22-2007
Quote:
Originally Posted by radoulov
Code:
grep  '^9[0-9][0-9][0-9]$' <(printf "%s\n" $s)

Or GNU grep:

Code:
grep -oE '\b9[0-9]{3}\b' <(printf "$s")

I tried

Code:
grep '^9[0-9][0-9][0-9]$' <( printf "%s\n", "9012 abc" )

But it returns "Missing name for redirect."
# 10  
Old 11-22-2007
and doesn't grep only grep the whole line?
# 11  
Old 11-22-2007
Quote:
Originally Posted by fayya
I tried

Code:
grep '^9[0-9][0-9][0-9]$' <( printf "%s\n", "9012 abc" )

But it returns "Missing name for redirect."
I didn't quote the variable in that example.

Code:
grep '^9[0-9][0-9][0-9]$' <( printf "%s\n", 9012 abc )

For older shells:

Code:
printf "%s\n", 9012 abc|grep '^9[0-9][0-9][0-9]$'

# 12  
Old 11-22-2007
Thanks radoulov!! Really appreciate your help! It worked great.

I always use echo, I just wonder why echo doesn't work like printf, I tried

Code:
echo "9012 abc"|grep '^9[0-9][0-9][0-9]$'

# 13  
Old 11-22-2007
Quote:
Originally Posted by fayya
Thanks radoulov!! Really appreciate your help! It worked great.

I always use echo, I just wonder why echo doesn't work like printf, I tried

Code:
echo "9012 abc"|grep '^9[0-9][0-9][0-9]$'

Because you need the newline between the words (\n).

You can do it with GNU grep:

Code:
zsh-4.3.4-dev-2% echo "9012 abc 99999"|grep -Eo '\b9[0-9][0-9][0-9]\b'  
9012
zsh-4.3.4-dev-2% echo "9012 abc 99999"|grep -Eo '9[0-9][0-9][0-9]'  
9012
9999


Last edited by radoulov; 11-22-2007 at 04:39 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sort only numbers within a string

Hi, I am having contents in a file like below, cat testfile rpool/swap rpool/swap14 rpool/swap2 rpool/swap3 I want to sort the above contents like, rpool/swap rpool/swap2 rpool/swap3 rpool/swap14 I have tried in this way, (7 Replies)
Discussion started by: Sumanthsv
7 Replies

2. Shell Programming and Scripting

Find string in file and find the all records by string

Hello I would like to get know how to do this: I got a big file (about 1GB) and I need to find a string (for instance by grep ) and then find all records in this file based on a string. Thanks for advice. Martin (12 Replies)
Discussion started by: mape
12 Replies

3. Shell Programming and Scripting

Adding numbers in a string

I am writing a bash script on ubuntu11.10 I have some string having numbers and letter and want to add all the numbers together For example 1s2d23f I want to perform 1 + 2 + 23 and store it in a variable (3 Replies)
Discussion started by: kristinu
3 Replies

4. UNIX for Dummies Questions & Answers

Extracting numbers from a String

Hi all, I'm a new programmer to shell script... and I have no idea how to use substring. I want to extract the numbers from the following string and place it into a variable: "170 unique conformations found" The numbers can be more than three digits depending on the case. I just want to... (10 Replies)
Discussion started by: ah7391
10 Replies

5. Shell Programming and Scripting

Extracting numbers from a string

Hello Everyone, i have quick question. I have file names like: bin_map300.asc and I would like to extract grid300. My approach so far: name=bin_map300.asc echo ${name%%.*} echo ${name##*_} I am stuck combining the two. Any help would be appreciated. (3 Replies)
Discussion started by: creamcheese
3 Replies

6. Shell Programming and Scripting

Concatenating string with numbers

Hi, I want to display the string value with number value. I dont know how to display. Can anyone help me. This is my code export A=${file_name} echo $a $b $sum | awk '{ printf "%011.f,%014.f,%014.f\n", $1,$2,$3}' >> ${MRR_OUTPUT} the out put shold be ${A}, $a, $b filename,... (2 Replies)
Discussion started by: easterraj
2 Replies

7. Shell Programming and Scripting

get partial numbers from a string

Hi Everyone, I have: $val="QQ3_1899_CD4". The output will be: 1899. I did $val =~ /(\d+)/g; the output is 318994, then i use substr to get those 1899. This is not efficient. Is any simple way, like just one line can do? Thanks (1 Reply)
Discussion started by: jimmy_y
1 Replies

8. UNIX for Dummies Questions & Answers

Using Floating Numbers in String

Dear Unix Gurus, I have a list of files that I want to loop over....for example: sl40_z11.70.txt sl41_z11.40.txt sl42_z11.10.txt sl43_z10.80.txt using the script #!/bin/sh # echo -n "....enter first Z-coordinate position....."; read zpos q="scale=3; $zpos" p=0.3 #... (7 Replies)
Discussion started by: tintin72
7 Replies

9. Shell Programming and Scripting

How to sort a string with numbers

Hi, I need help to sort a file contents. I am using sort -r option to basically reverse the comparison in descending order. However, i found out that my file is not sorted according, can anyone please help. My data is something like:- Hello world 20.982342864 343 19.234355545 222... (5 Replies)
Discussion started by: ahjiefreak
5 Replies

10. Shell Programming and Scripting

How do i get numbers from a string?

Hi... I'm new here and i have a Q... How do i get only the number from a string? like from "rlvol11" i want to get 11 or from "lvol4" i want to get 4 what commands should i use at my script? thanx 4 the help! Eliraz. (13 Replies)
Discussion started by: eliraza6
13 Replies
Login or Register to Ask a Question