How do i get numbers from a string?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How do i get numbers from a string?
# 1  
Old 07-18-2007
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.
# 2  
Old 07-18-2007
in ksh/bash

Code:
echo $variable |  tr -d '[A-Za-z]' | read numStr

Example

Code:
echo "lvol4" |  tr -d '[A-Za-z]' | read numStr
echo $numStr

# 3  
Old 07-18-2007
One way is

Code:
echo "rlvol11" | tr -d '[:alpha:]'

See man tr for more details.
# 4  
Old 07-18-2007
With bash:

Code:
$ v="rlvol11";echo "${v//[!0-9]}"
11

# 5  
Old 07-18-2007
better:

tr -dc '[0-9]'
# 6  
Old 07-18-2007
hi again...

First of all thanx!
it worked but i still have a problem with my script...
i want to make a script that gets a VG name and outputs the size of it's lvols...

here is what i wrote but it doesn't work... Smilie

Code:
for x in *
    do
        if [ "echo $x" = "lvol*" ]; then
    echo $x |  tr -d '[A-Za-z]' | read lvolnum
    echo /dev/$1/lvol$lvolnum
    lvdisplay lvol${lvolnum} | grep Mbytes
        fi
done

can someone please help me?
thanx alot!
# 7  
Old 07-18-2007
Quote:
Originally Posted by eliraza6
Code:
for x in *
    do
        if [ "echo $x" = "lvol*" ]; then
    echo $x |  tr -d '[A-Za-z]' | read lvolnum
    echo /dev/$1/lvol$lvolnum
    lvdisplay lvol${lvolnum} | grep Mbytes
        fi
done

Code:
for x in *
do
      if [ "$x" = lvol* ]; then
        echo $x |  tr -d '[A-Za-z]' | read lvolnum
        echo /dev/$1/lvol${lvolnum} --> Where did you get $1 from ?
        lvdisplay lvol${lvolnum} | grep Mbytes
      fi
done

I have a feeling it all boils down to just

Code:
for x in lvol*
do
  echo /dev/$1/$x
  lvdisplay $x | grep MBytes
done

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

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

3. 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

4. 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

5. 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

6. UNIX for Dummies Questions & Answers

Breaking a string into four different numbers

I'm having trouble breaking a string into four different numbers. What I'm starting out with is foo='1218141 1441 1664 122222' and what I want to have is a=1218141 b=1441 c=1664 d=122222 I'm tried using some pattern matching to break the string up into these four different... (7 Replies)
Discussion started by: Azumandious
7 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

to find numbers in a string

I writing my script and got stuck in this function. Can someone help me? I need to extract out the numbers inside a string. Ex: INPUT -> OUTPUT abcdef123 -> 123 abc123def -> 123 123abcdef -> 123 a123bc45d -> 123 45 abcdefghi -> -1 Thank you! (12 Replies)
Discussion started by: fongthai
12 Replies
Login or Register to Ask a Question