awk output?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk output?
# 1  
Old 02-11-2005
Question awk output?

i have this file

11 tony tony
12 john john 0
13 nick nick 20
14 mary mary 40

i want to display the file like

tony tony missing
john john 0 Failed
nick nick Failed
mary mary 40

if there is no mark for a name flag it as missing ,mark <40 flagged as failed

i came up with

awk ' {no=$4
if (!no){
print $2,$3,"MISSING"
}
else {
if (no>=40){
print $2,$3,$4
}
else {
print $2,$3,$4,"Failed"
}
}
}' file

but the output is :

tony tony missing
john john missing
nick nick Failed
mary mary 40

why it is displaying missing after john while there is mark "0" for him?
# 2  
Old 02-11-2005
Code:
{$1=""; $0=$0}
NF < 3 {print $0, "missing"; next }
$NF < 40 { print $0, "Failed"; next }
{print $0}

# 3  
Old 02-11-2005
Quote:
Originally Posted by vgersh99
Code:
{$1=""; $0=$0}
NF < 3 {print $0, "missing"; next }
$NF < 40 { print $0, "Failed"; next }
{print $0}

i dont want the space in front..
but howSmilie
# 4  
Old 02-11-2005
Code:
NF < 4 {print $2, $3, "missing"; next }
{ print $2, $3, $4, ($NF < 40) ? "Failed" : ""}

# 5  
Old 02-11-2005
Quote:
Originally Posted by vgersh99
Code:
NF < 4 {print $2, $3, "missing"; next }
{ print $2, $3, $4, ($NF < 40) ? "Failed" : ""}

yeap tried that and worked just great

thanx.you've been really helpfull

cheers
# 6  
Old 02-11-2005
I modifed your original script. It is working ...

Code:
awk ' {no=$4
if (length(no)== 0 ){
print $2,$3,"MISSING"
}
else {
if (no>=40){
print $2,$3,$4
}
else {
print $2,$3,$4,"Failed"
}
}
}' file1

# 7  
Old 02-11-2005
Quote:
Originally Posted by bhargav
I modifed your original script. It is working ...

Code:
awk ' {no=$4
if (length(no)== 0 ){
print $2,$3,"MISSING"
}
else {
if (no>=40){
print $2,$3,$4
}
else {
print $2,$3,$4,"Failed"
}
}
}' file1

yeap ..good point..this worked as well

thank you both
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk output yields error: awk:can't open job_name (Autosys)

Good evening, Im newbie at unix specially with awk From an scheduler program called Autosys i want to extract some data reading an inputfile that comprises jobs names, then formating the output to columns for example 1. This is the inputfile: $ more MapaRep.txt ds_extra_nikira_usuarios... (18 Replies)
Discussion started by: alexcol
18 Replies

2. Shell Programming and Scripting

awk output

hello all input file AAA: XXX1 CCC: DD SS SSS: SSS1 BBBB: ASAS ZZZ: ZZZZZ1 XXX: XXXXXXXXXXXXXXX1 PPPP: PPPPPP1 RRRR: 111111111 ZZZ: ZZZZZ2 XXX: XXXXXXXXXXXXXXX2 PPPP: PPPPPP2 RRRR: 222222222 ZZZ: ZZZZZ3 XXX: XXXXXXXXXXXXXXX3 PPPP: PPPPPP3 RRRR: 33:33:33:33:33 (2 Replies)
Discussion started by: vikus
2 Replies

3. Shell Programming and Scripting

awk question : system output to awk variable.

Hi Experts, I am trying to get system output to capture inside awk , but not working: Please advise if this is possible : I am trying something like this but not working, the output is coming wrong: echo "" | awk '{d=system ("date") ; print "Current date is:" , d }' Thanks, (5 Replies)
Discussion started by: rveri
5 Replies

4. Shell Programming and Scripting

Awk script to run a sql and print the output to an output file

Hi All, I have around 900 Select Sql's which I would like to run in an awk script and print the output of those sql's in an txt file. Can you anyone pls let me know how do I do it and execute the awk script? Thanks. (4 Replies)
Discussion started by: adept
4 Replies

5. Shell Programming and Scripting

help on awk---- need to assign the output of awk to a variable

hi i want to find the size of a folder and assign it to a variable and then compare if it is greater than 1 gb. i am doin this script, but it is throwing error.... #!/bin/ksh cd . | du -s | size = awk '{print $1}' if size >= 112000 then echo size high fi ERROR : (4 Replies)
Discussion started by: Nithz
4 Replies

6. Shell Programming and Scripting

awk: round output or delimit output of arithmatic string

I have a file with the following content. > cat /tmp/internetusage.txt 6709.296322 30000 2/7/2010 0.00I am using the following awk command to calculate a percentage from field 1 and 2 from the file. awk '{ print $1/$2*100 }' /tmp/internetusage.txt This outputs the value "22.3643" as a... (1 Reply)
Discussion started by: jelloir
1 Replies

7. Shell Programming and Scripting

Parse file using awk and work in awk output

hi guys, i want to parse a file using public function, the file contain raw data in the below format i want to get the output like this to load it to Oracle DB MARWA1,BSS:26,1,3,0,0,0,0,0.00,22,22,22.00 MARWA2,BSS:26,1,3,0,0,0,0,0.00,22,22,22.00 this the file raw format: Number of... (6 Replies)
Discussion started by: dagigg
6 Replies

8. Shell Programming and Scripting

scripting/awk help : awk sum output is not comming in regular format. Pls advise.

Hi Experts, I am adding a column of numbers with awk , however not getting correct output: # awk '{sum+=$1} END {print sum}' datafile 2.15291e+06 How can I getthe output like : 2152910 Thank you.. # awk '{sum+=$1} END {print sum}' datafile 2.15079e+06 (3 Replies)
Discussion started by: rveri
3 Replies

9. Shell Programming and Scripting

Same awk gives different output:

nawk -F"|" '{for (i=1;i<=NF;i++) {gsub("^*", "",$i);gsub("*$", "",$i)}}1' OFS="|" file | wc -l 1000 nawk -F"|" '{for (i=1;i<=NF;i++) {gsub("^*", "",$i);gsub("*$", "",$i);print $0}}' OFS="|" file | wc -l 22000 The above awk command are same but with different printing... (1 Reply)
Discussion started by: pinnacle
1 Replies

10. Shell Programming and Scripting

awk output

could any one tell me why the following code is working in infinite loop every time it is asking for no. even though it does not have for loop #!/bin/awk -f BEGIN { print "type a number"; } { print "The square of ", $1, " is ", $1*$1; print "type another number"; } END { ... (3 Replies)
Discussion started by: useless79
3 Replies
Login or Register to Ask a Question