retreiving and assigning values and manipulating string in a for loop


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting retreiving and assigning values and manipulating string in a for loop
# 1  
Old 06-15-2009
retreiving and assigning values and manipulating string in a for loop

Hi

I am new to shell scripting and i am preparing a script.
for now i am work on a sub part of it..but i am unable to make it work.

---
the test code that i am working on
--------------------------
IFS=""
Sample_eve=`psg proc_s | grep tY`
n=0
for line in $Sample_eve
do
n=`expr $n + 1`
Sam$n=$(`echo $line |awk -F" " {print $5}' |awk -F":" '{print $2}'`)
echo $Sam$n
done
----------------------------
what i am trying to this is..
list all the process named proc_s that are currently running and are on the machine tY..
populate them in the variable Sample_eve.
and then access each line from the Sample_eve and process them on an individual basis.
but it is not happening ..for loop only goes through once..if i do not set IFS="" then line takes word by word data from the $Sample_eve...by which i cannot get seperate start time for each process. (it runs 35 times for 4 lines..i want to make it run only 4 time for 4 line).

i am doing `echo $line |awk -F" " {print $5}' |awk -F":" '{print $2}'` ..so as to get the start time for each process in minutes..then i am assigning it into array Sam so as to get the start Minute for each process.
but getting an output error like this..
for this array assignment as Test[9]: 04^J28^J04^J09: not found.
04, 28,04,09 are correctly shown they are the minutes ..but is not in a proper manner.

i am stuck with this thing .. please help me. I am unable to make the code work.

i am using the korn shell.
thanks
# 2  
Old 06-15-2009
Quote:
Originally Posted by Anteus
Sam$n=$(`echo $line |awk -F" " {print $5}' |awk -F":" '{print $2}'`)
You can not do like this... $ should not come on the left side.
This will work...
Code:
Sam=`echo $line |awk -F" " {print $5}' |awk -F":" '{print $2}'`

# 3  
Old 06-15-2009
Quote:
Originally Posted by rakeshawasthi
You can not do like this... $ should not come on the left side.
This will work...
Code:
Sam=`echo $line |awk -F" " {print $5}' |awk -F":" '{print $2}'`



-----------

Hi thanks.. the code you gave worked.

but further while accessing the array Sam. i am having some issues.

1: When i echo ${Sam[$2]} rather than giving the 2nd element it prints all of them

2: for (( i = 0 ; i < ${#Sam[@]} ; i++ ))
do
echo ${Sam[$i]}
done
its throwing an error
Test[16]: syntax error at line 17 : `((' unexpected

can you please tell how to go about accessing the array..
# 4  
Old 06-15-2009
Quote:
Originally Posted by Anteus
-----------

Hi thanks.. the code you gave worked.

but further while accessing the array Sam. i am having some issues.

1: When i echo ${Sam[$2]} rather than giving the 2nd element it prints all of them

2: for (( i = 0 ; i < ${#Sam[@]} ; i++ ))
do
echo ${Sam[$i]}
done
its throwing an error
Test[16]: syntax error at line 17 : `((' unexpected

can you please tell how to go about accessing the array..
We can not write a for loop like this, unless you are using awk.
I am giving an example of Array and for loop for you...
Code:
set -A _Array 1 2 3 4 5
for i in ${_Array[@]}
do
   echo $i
done

# 5  
Old 06-15-2009
Quote:
Originally Posted by rakeshawasthi
We can not write a for loop like this, unless you are using awk.
I am giving an example of Array and for loop for you...
Code:
set -A _Array 1 2 3 4 5
for i in ${_Array[@]}
do
   echo $i
done


Yeah . but what to do if only the second element of the array Sam has to be echoed..

and why does echo ${Sam[$2]} prints the entire Sam array??
# 6  
Old 06-15-2009
this way...
Code:
echo ${_Array[1]}

# 7  
Old 06-15-2009
Quote:
Originally Posted by rakeshawasthi
this way...
Code:
echo ${_Array[1]}


Tried..but its not printing anything...any other way u know to do this.

the test code is

IFS=""
eve=`psg ftp | grep tV`
n=0
for line in $eve
do
n=`expr $n + 1`
echo $line
array=`echo $line |awk -F" " '{print $5}' |awk -F":" '{print $2}'`
echo ${array[2]}
done
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Assigning values to 2 variables within for loop

Hi All, Is it possible to grep for two files and assign their names to two separate variables with for loop? I am doing the below currently: if then for fname in $( cd $dirA ; ls -tr | grep "^Ucountry_file$") do InFile=$dirA/$fname ... (4 Replies)
Discussion started by: swasid
4 Replies

2. Shell Programming and Scripting

[Solved] Assigning a value to a variable name then running a loop on these values

Hi, I was wondering if anyone could assist me for (what is probably) a very straightforward answer. I have input files containing something like File 1 Apples Apples Apples Apples File 2 Bananas Bananas Bananas Bananas (4 Replies)
Discussion started by: hubleo
4 Replies

3. UNIX Desktop Questions & Answers

Manipulating a list of numbers based on values

Hi, I have a single column of numbers from in tabulated text format ranging from 0 to 1. I want to manipulate the list of numbers so that if the number is greater than 0.5 (> 0.5), I get 1 - number. If the number is less than 0.5, the number is taken as it is and not altered. For example: ... (1 Reply)
Discussion started by: evelibertine
1 Replies

4. Shell Programming and Scripting

Help in assigning values to variables from the file

Hi! This might be a simple thing, but I'm struggling to assign values to variables from the file. I've the following values stored in the file.. It consists of only two rows.. 10 20 I want to assign the first row value to variable "n1" and the second row value to variable "n2".. That is ... (3 Replies)
Discussion started by: abk07
3 Replies

5. Shell Programming and Scripting

Need help in manipulating string variable

I have written a shell script to do some processing and have to manipulate a variable. Basically, the variable is like this -- var=set policy:set cli My purpose is to split it into two variables based on the position of ":". To get the right end, I am doing this -- vaa1=${vaa#*:} ... (1 Reply)
Discussion started by: Dev_Sharma987
1 Replies

6. Shell Programming and Scripting

Assigning values to an array via for/while loop

I need to do something like this: for i in 1 2 3 4 5; do arr=$(awk 'NR="$i" { print $2 }' file_with_5_records) done That is, parse a file and assign values to an array in an ascending order relative to the number of record in the file that is being processed on each loop. Is my... (2 Replies)
Discussion started by: fiori_musicali
2 Replies

7. Shell Programming and Scripting

Assigning the values to an Array

hi every body, i donot know how to assign a array varible with a file see i having file more file property1 Name property2 Address the above two line are tab Space seperated between the property and its value i want to seperate it and assign to... (1 Reply)
Discussion started by: kkraja
1 Replies

8. UNIX for Dummies Questions & Answers

string manipulating

I have a file like this: Tue Apr 15 10:41:47 MDT 2008 FINAL RESULT; 6 Tue Apr 15 10:41:47 MDT 2008 FINAL RESULT; 2 Tue Apr 15 10:41:47 MDT 2008 FINAL RESULT; 5 With this command seira=`cut -f 2 -d ';' tes.txt` i take all the results (6,2,5 etc) and i store them in variable seira When i do... (9 Replies)
Discussion started by: psalas
9 Replies

9. UNIX for Dummies Questions & Answers

assigning values to a variable

i try to get the year and month values using the below shell script when i enter the script like this #!/usr/bin/ksh dd=`DATE +%Y%M` echo $dd it is showing the error as shown below abc.ksh: DATE: not found any suggestions please (3 Replies)
Discussion started by: trichyselva
3 Replies

10. UNIX for Dummies Questions & Answers

Assigning values to an array

The way I've been using arrays currently have been: #!/bin/ksh set -A myArray myArray=value1 myArray=value2 myArray=value3 myArray=value4 Is there a way I can assign values to an array that will automatically place the value into the next element in the array like: myArray=value1... (4 Replies)
Discussion started by: yongho
4 Replies
Login or Register to Ask a Question