I m bugged : AWK command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting I m bugged : AWK command
# 1  
Old 03-29-2006
I m bugged : AWK command

Hi,

i have used awk command to find a particular field from the file using filter.

The problem is that i am getting the field in a variable, however i m not able to use that variable in other part of the script.
Here is a code:

............
Some script...
........
awk -F" " '/filter/ { var1 = $3 }' /usr/tmp/file.txt

# this is i want to do but i m not able to do that
if [ $var1 == 5 ]; then
echo $var1
fi

..............
Some script
..............

Here is the format of the file:
a filter 1
a filter 3
a filter 4
a filter 5
a user 1
a user 4
a user 5


Can you suggest some solution so that I can get particulat field in some variable and do some processing?

Get back to me if you need any more clarification about the problem.

Thanks,
Chirag
# 2  
Old 03-30-2006
Why you cant do the if command?
are u getting an error? if so what is the error?
did you tried it like that:

if [ $var1 -eq 5 ]; then
echo $var1
fi

If it still not working
try to put echo $var1 before the if, and check that u get an integer
# 3  
Old 03-30-2006
Yes, it is not working..even if I put that before the "if"

it seems var1 is not holding up the value.. when i try to print var1 in awk it prints but not after the awk

is there any alternative to get the value of var1 and use in the script at some other place..i want to do this as i have to make decision based on the value of var1.
# 4  
Old 03-30-2006
Ok, I take the line u wrote and try to run it on my server,
U actually not enter anything to var1 and thats why the if fails,

Try to do it like that:

var1=`awk -F" " '/filter/ {print $3}' /usr/tmp/file.txt

Now, var1 will holds the whole field #3 from all the lines, so if u do
echo $var 1
u will get somthing like:
1 3 5 2 6 ..... etc,
I know that's not what u want.
I just gave u the basic of how to get this parameter into var1,
now what u have to do is to create a loop that will run on all over the file and each time will take only one line into var1,

Or,
u can keep the var1 with all the values from file.txt and create a loop that will run on all values in var1.
# 5  
Old 03-30-2006
Thanks much..
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Pass awk field to a command line executed within awk

Hi, I am trying to pass awk field to a command line executed within awk (need to convert a timestamp into formatted date). All my attempts failed this far. Here's an example. It works fine with timestamp hard-codded into the command echo "1381653229 something" |awk 'BEGIN{cmd="date -d... (4 Replies)
Discussion started by: tuxer
4 Replies

2. Shell Programming and Scripting

Multiple command execution inside awk command during xml parsing

below is the output xml string from some other command and i will be parsing it using awk cat /tmp/alerts.xml <Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies

3. Shell Programming and Scripting

awk command to compare a file with set of files in a directory using 'awk'

Hi, I have a situation to compare one file, say file1.txt with a set of files in directory.The directory contains more than 100 files. To be more precise, the requirement is to compare the first field of file1.txt with the first field in all the files in the directory.The files in the... (10 Replies)
Discussion started by: anandek
10 Replies

4. Shell Programming and Scripting

awk command in script gives error while same awk command at prompt runs fine: Why?

Hello all, Here is what my bash script does: sums number columns, saves the tot in new column, outputs if tot >= threshold val: > cat getnon0file.sh #!/bin/bash this="getnon0file.sh" USAGE=$this" InFile="xyz.38" Min="0.05" # awk '{sum=0; for(n=2; n<=NF; n++){sum+=$n};... (4 Replies)
Discussion started by: catalys
4 Replies

5. Shell Programming and Scripting

awk command for simple join command but based on 2 columns

input1 a_a a/a 10 100 a1 a_a 20 200 b1 b_b 30 300 input2 a_a a/a xxx yyy a1 a1 lll ppp b1 b_b kkk ooo output a_a a/a 10 100 xxx yyy (2 Replies)
Discussion started by: ruby_sgp
2 Replies

6. UNIX for Dummies Questions & Answers

Basic awk question...getting awk to act on $1 of the command itself

I have a script problem that I am not able to solve due my very limited understanding of unix/awk. This is the contents of test.sh awk '{print $1}' From the prompt if I enter: ./test.sh Hello World I would expect to see "Hello" but all I get is a blank line. Only then if I enter "Hello... (2 Replies)
Discussion started by: JasonHamm
2 Replies

7. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

Sorry for the duplicate thread this one is similar to the one in https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies

8. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies
Login or Register to Ask a Question