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
SCTP_GETPADDRS(3)					     Linux Programmer's Manual						 SCTP_GETPADDRS(3)

NAME
sctp_getpaddrs - Returns all peer addresses in an association. SYNOPSIS
#include <sys/types.h> #include <sys/socket.h> #include <netinet/sctp.h> int sctp_getpaddrs(int sd, sctp_assoc_t assoc_id, struct sockaddr **addrs); void sctp_freepaddrs(struct sockaddr *addrs); DESCRIPTION
sctp_getpaddrs returns all peer addresses in an association. On return, addrs will point to a dynamically allocated packed array of sock- addr structures of the appropriate type for each address. The caller should use sctp_freepaddrs to free the memory. Note that the in/out parameter addrs must not be NULL. If sd is an IPv4 socket, the addresses returned will be all IPv4 addresses. If sd is an IPv6 socket, the addresses returned can be a mix of IPv4 or IPv6 addresses. For one-to-many style sockets, id specifies the association to query. For one-to-one style sockets, id is ignored. sctp_freepaddrs frees all the resources allocated by sctp_getpaddrs. RETURN VALUE
On success, sctp_getpaddrs returns the number of peer addresses in the association. If there is no association on this socket, 0 is returned and the value of *addrs is undefined. On error, sctp_getpaddrs returns -1 and the value of *addrs is undefined. SEE ALSO
sctp(7) sctp_bindx(3), sctp_connectx(3), sctp_sendmsg(3), sctp_send(3), sctp_recvmsg(3), sctp_peeloff(3), sctp_getladdrs(3), sctp_opt_info(3), Linux 2.6 2005-10-25 SCTP_GETPADDRS(3)
All times are GMT -4. The time now is 05:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy