Sponsored Content
Full Discussion: problems with arrays
Top Forums Shell Programming and Scripting problems with arrays Post 302228873 by alirezan on Monday 25th of August 2008 05:43:28 PM
Old 08-25-2008
problems with arrays

Hi guys,

I want to extract the start and end cylinders of each partition from output of "fdisk -l". I tried to dump the info in an array and then extract from there. Here's the code I have written so far:

Quote:
sizes=`fdisk -l | grep "Linux"` #s
sizes_expanded=$(echo $sizes | sed 's/\(.\)/\1/g') #e
sizes_array=($sizes_expanded) #a

for i in $(seq 0 $(((${#sizes_array[*]} - 1)/6))); do
start_size=$(((6*$i) + 1))
echo "Start addresses = sizes_array[$i]=\"${sizes_array[(((6*$i) + 1))]}\""
done

ends=`fdisk -l | grep "Linux"` #s
ends_expanded=$(echo $ends | sed 's/\(.\)/\1/g') #e
ends_array=($ends_expanded) #a

for i in $(seq 0 $(((${#ends_array[*]} - 1)/6))); do
start_size=$(((6*$i) + 1))
echo "End addresses = ends_array[$i]=\"${ends_array[(((6*$i) + 2))]}\""
done

#########################################################################
#Now calculate the size from the start and end addresses
#########################################################################

declare -a size_arr
for k in $(seq 0 $(((${#sizes_array[*]} - 1)/6))); do
size_arr[$k]=$(($ends_array[$k]-$size_array[$k]))
echo $size_arr[$k]
done
exit 0
and here's the output:

Quote:

Succeeded! Disks found on this machine
Number of Disks on this machine: 2
/dev/hda
/dev/hdd
Start addresses = sizes_array[0]="1"
Start addresses = sizes_array[1]="1001"
Start addresses = sizes_array[2]="2940"
Start addresses = sizes_array[3]="4879"
Start addresses = sizes_array[4]="5849"
Start addresses = sizes_array[5]="8781"
Start addresses = sizes_array[6]="10720"
Start addresses = sizes_array[7]="7788"
Start addresses = sizes_array[8]="1"
Start addresses = sizes_array[9]="3877"
Start addresses = sizes_array[10]="7753"
End addresses = ends_array[0]="1000"
End addresses = ends_array[1]="2939"
End addresses = ends_array[2]="4878"
End addresses = ends_array[3]="5848"
End addresses = ends_array[4]="7787"
End addresses = ends_array[5]="10719"
End addresses = ends_array[6]="16644"
End addresses = ends_array[7]="8036"
End addresses = ends_array[8]="3876"
End addresses = ends_array[9]="7752"
End addresses = ends_array[10]="10859"
./part: line 67: /dev/hda1[0]-[0]: syntax error: operand expected (error token is "/dev/hda1[0]-[0]")
I am trying to subtract the start and end cylinders to find how long each partition is in terms of cylinders. I want to put that in an array too, but I can't seem to get the right output! Can someone please take a quick look at the code and tell me what I am doing wrong?

Thank you
 

10 More Discussions You Might Find Interesting

1. Programming

perl arrays

hello ppl, i'm coding a perl script and i have the following situation: @array1 = ("test1", "test2", "test3"); @array2 = ("something1", "something2", "something1"); $var1 = "with_one_of_the_array1_values"; $var2 = "with_one_of_the_array2_values"; what i want to do is to compare $var1... (2 Replies)
Discussion started by: crashnburn
2 Replies

2. Shell Programming and Scripting

Arrays

Dear all, How can i unset arrays. I mean all the subscripts including the array after using them. Could you direct me to some links of array memory handling in the korn shell. Thanks (2 Replies)
Discussion started by: earlysame55
2 Replies

3. Web Development

PHP arrays in arrays

PHP question... I have an SQL query that's pulled back user IDs as a set of columns. Rather than IDs, I want to use their names. So I have an array of columns $col with values 1,7,3,12 etc and I've got an array $person with values "Fred", "Bert", "Tom" etc So what I want to do is display the... (3 Replies)
Discussion started by: JerryHone
3 Replies

4. UNIX for Dummies Questions & Answers

arrays how to?

Hello, I am some what of a newbie to awk scripting and I seem to be struggling with this problem. I know I need to use arrays but I can't figure out how to use them. I have an input file that looks like this; Name,Team,First Test, Second Test, Third Test Crystal,Red,5,17,22... (1 Reply)
Discussion started by: vlopez
1 Replies

5. Programming

question about int arrays and file pointer arrays

if i declare both but don't input any variables what values will the int array and file pointer array have on default, and if i want to reset any of the elements of both arrays to default, should i just set it to 0 or NULL or what? (1 Reply)
Discussion started by: omega666
1 Replies

6. Shell Programming and Scripting

How can I use the arrays ?

Hi all, I have a file test1.txt with the below contents abc def ghj xyz I tried printing these values using arrays. Script tried : =========== set -A array1 `cat test1.txt` count=${#array1 } i=0 while do echo "element of array $array1" done (1 Reply)
Discussion started by: dnam9917
1 Replies

7. Programming

Arrays in C++

I've noticed something interesting in C++ programming. I've always done tricky stuff with pointers and references to have functions deal with arrays. Doing exercises again out of a C++ book has shown me an easier way, I didn't even know was there. It's weird to me. When dealing with arrays, it... (4 Replies)
Discussion started by: John Tate
4 Replies

8. Shell Programming and Scripting

Arrays and functions

Hi Guys! I need to solve this. I want an array to be created by a certain calculation for which I created a function. Now this array is not getting created. See script below I want array b to be the factorial value of array element a. Help is needed. Thanks! #!/bin/bash echo "Number of... (17 Replies)
Discussion started by: ambijat
17 Replies

9. Shell Programming and Scripting

Using arrays?

I have never used arrays before but I have a script like this: var1=$(for i in $(cat /tmp/jobs.021013);do $LIST -job $i -all | perl -ne 'print /.*(\bInfo.bptm\(pid=\d{3,5}).*/' | tr -d "(Info=regpid" | tr -d ')'; $LIST -job $i -all | cut -f7 -d','| sed -e "s/^\(*\)\(*\)\(*\)\(.*\)/\1... (2 Replies)
Discussion started by: newbie2010
2 Replies

10. UNIX for Dummies Questions & Answers

Arrays

Am using bash For eg: Suppose i have a array arr=(1 2 3 4 5 6 7 8 9 10 11 12) suppose i give input 5 to a script and script should able to print values greater than or equal to 5 like below: Input: 5 output: 5,6,7,8,9,10,11,12 (7 Replies)
Discussion started by: manid
7 Replies
ATMADDR(8)						       Maintenance Commands							ATMADDR(8)

NAME
atmaddr - list and maintain local ATM addresses SYNOPSIS
atmaddr [-n] [itf] atmaddr -r [itf] atmaddr -a [itf] atm_addr atmaddr -d [itf] atm_addr atmaddr -V DESCRIPTION
atmaddr is used to list the local addresses configured for ATM interfaces and to manually change the list of addresses. If the interface number itf is omitted, interface 0 is used by default. The ATM address atm_addr can be any valid ATM SVC address, e.g. an E.164 address or an ATM Forum NSAP address. If invoked without options, atmaddr lists the addresses that are currently configured on the specified interface. Note that local ATM addresses are normally automatically maintained by the ILMI demon. OPTIONS
-a append the specified address at the end of the list. -d delete the specified address from the list. -n numeric address output only. No address to name translation is attempted. -r reset (clear) the local address list of the specified interface. -V print the version number of atmaddr on standard output and exit. AUTHOR
Werner Almesberger, EPFL ICA <Werner.Almesberger@epfl.ch> SEE ALSO
ilmid(8) Linux April 26, 2000 ATMADDR(8)
All times are GMT -4. The time now is 02:54 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy