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
# 36  
Old 06-17-2009
Quote:
Originally Posted by panyam
Change the argument number accordingly (i.e replace $(NF-1) with $8.

I did not understand
Code:
moreover i donot want to put this values in file..would be in a variable which would be used in if else blocks.

what it mean ?...

If you post exactly your requirement , then you will get more responses.
If i Replace it with $8 then also it wont serve the purpose..
because. time field may contain 1 or 2 fields
example:
crmcint 16428 1 0 14:35:49 ? 0:00 proc_s de01.c (proc_s is 9th)
rscle 3481 1 0 Apr 13 ? 0:01 proc_s dt07.c (proc_s is 8th)

something like this may do... but it has syntax problems in the if construct.

Code:
psg ksh | awk 'BEGIN {n=split($0,arr," ")} {
      for (i=1;i<=NF;i++) {
      print "Filed " i " is " $i
      print length($i)
      if [ NF == 9]
        then 
               if[ length($4) == 3]
                then
                  cmd_name=$9
                fi
               else
                then
                  cmd_name=$8 
                fi
               pid=$1
               user=$2
        fi
 chomp($cmd_name);
 echo $cmd_name
  }
}'

# 37  
Old 06-17-2009
Code:
psg ksh | awk '{ printf("pid=%d uid=%s command=%s\n", $2, $1, ($5 ~ /^[A-Z]/)? $9:$8) }'

# 38  
Old 06-17-2009
Quote:
Originally Posted by vgersh99
Code:
psg ksh | awk '{ printf("pid=%d uid=%s command=%s\n", $2, $1, ($5 ~ /^[A-Z]/)? $9:$8) }'


hi...
can u explain what is $5 ~ /^[A-Z]/)? $9:$8) .. i cannot understand that.

one more thing can i modify this code like this

psg ksh | awk '{
pid=$2
uid=$1
command=($5 ~ /^[A-Z]/)? $9:$8) }'

thanks
# 39  
Old 06-17-2009
Quote:
Originally Posted by Anteus
hi...
can u explain what is $5 ~ /^[A-Z]/)? $9:$8) .. i cannot understand that.
If the fifth field starts with an upper case letter, return the value of the ninth field, otherwise return the value of the eight field.
Quote:
Originally Posted by Anteus
one more thing can i modify this code like this

psg ksh | awk '{
pid=$2
uid=$1
command=($5 ~ /^[A-Z]/)? $9:$8) }'

thanks
i don't see why not - would not hurt to try it.
# 40  
Old 06-17-2009
Quote:
Originally Posted by vgersh99
If the fifth field starts with an upper case letter, return the value of the ninth field, otherwise return the value of the eight field.

i don't see why not - would not hurt to try it.


Tried

but its showing error
awk: There is an extra ) character.
The source line is 4.
The error context is
command=($5 ~ /^[A-Z]/)? >>> $9:$8) <<<
syntax error The source line is 4.
awk: The statement cannot be correctly parsed.
The source line is 4.
awk: There is a missing } character.
awk: There is an extra ) character.
# 41  
Old 06-17-2009
Quote:
Originally Posted by Anteus
Tried

but its showing error
awk: There is an extra ) character.
The source line is 4.
The error context is
command=($5 ~ /^[A-Z]/)? >>> $9:$8) <<<
syntax error The source line is 4.
awk: The statement cannot be correctly parsed.
The source line is 4.
awk: There is a missing } character.
awk: There is an extra ) character.
then there must be an extra ')' from the copy/paste of the previous 'printf' posting. Tried to remove it?
What in the error message is not clear?
# 42  
Old 06-17-2009
Quote:
Originally Posted by vgersh99
then there must be an extra ')' from the copy/paste of the previous 'printf' posting. Tried to remove it?
What in the error message is not clear?
Code:
 psg telnetd | awk '{
                pid=$2
                uid=$1
                command=($5 ~ /^[A-Z]/)? $9:$8
                printf("pid=%d uid=%s command=%s\n",pid,uid,command)
                }'


ohh sorry! missed a bracket. thanks for helping.
regards.

-----Post Update-----

thank u all of u guys..
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