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
ARRAY_REPLACE(3)							 1							  ARRAY_REPLACE(3)

array_replace - Replaces elements from passed arrays into the first array

SYNOPSIS
array array_replace (array $array1, array $array2, [array $...]) DESCRIPTION
array_replace(3) replaces the values of $array1 with values having the same keys in each of the following arrays. If a key from the first array exists in the second array, its value will be replaced by the value from the second array. If the key exists in the second array, and not the first, it will be created in the first array. If a key only exists in the first array, it will be left as is. If several arrays are passed for replacement, they will be processed in order, the later arrays overwriting the previous values. array_replace(3) is not recursive : it will replace values in the first array by whatever type is in the second array. PARAMETERS
o $array1 - The array in which elements are replaced. o $array2 - The array from which elements will be extracted. o $... - More arrays from which elements will be extracted. Values from later arrays overwrite the previous values. RETURN VALUES
Returns an array, or NULL if an error occurs. EXAMPLES
Example #1 array_replace(3) example <?php $base = array("orange", "banana", "apple", "raspberry"); $replacements = array(0 => "pineapple", 4 => "cherry"); $replacements2 = array(0 => "grape"); $basket = array_replace($base, $replacements, $replacements2); print_r($basket); ?> The above example will output: Array ( [0] => grape [1] => banana [2] => apple [3] => raspberry [4] => cherry ) SEE ALSO
array_replace_recursive(3), array_merge(3). PHP Documentation Group ARRAY_REPLACE(3)
All times are GMT -4. The time now is 10:16 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy