Checking conditions with AWK


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Checking conditions with AWK
# 1  
Old 04-08-2011
Checking conditions with AWK

Input File1

Code:
 
0BB2    2A11   Split,FriApr80625,1507_7RAID5
0BF6    2829   Synchronized,FriJan140653,1507_7RAID5
0BF6    282A   Split,FriApr80625,1507_7RAID5
0C7C    199E   Synchronized,FriJan140653,1507_7RAID5
0C7C    1BCC   Split,FriApr80625,1507_7RAID5
0DCA    0A9B   Synchronized,FriJan140653,1507_7RAID5
0DCA    0AA1   Split,FriApr80625,1507_7RAID5
144B    15A5   Synchronized,FriJan140653,1507_7RAID5
144B    15AD   Split,FriApr80625,1507_7RAID5
0DDD    0AA2   Split,FriApr80625,1507_7RAID5
0DDD    15A6   Synchronized,FriJan140653,1507_7RAID5
0DDD    15AC   Split,FriApr80625,1507_7RAID5

OUTPUT FILE 2
Code:
0BB2,0BB2(ERR)
0BF6,0BF6
0C7C,0C7C
0DCA,0DCA
144B,144B 
0DDD,0DDD(ERR)

$1 in FILE1 should be pair of 2 , if its <2 or > 2 then $2 =$1(ERR) , else $2 = $1

OUTPUT FILE3
Code:
 
2A11,2A11(GC)
2829,2829(DR)
282A,282A(GC)
199E,199E(DR)
1BCC,1BCC(GC)
0A9B,0A9B(DR)
0AA1,0AA1(GC)
15A5,15A5(DR)
15AD,15AD(GC)
0AA2,0AA2(GC)
15A6,15A6(DR)
15AC,15AC(GC)

If the 3rd field in FILE1 has "date |sed 's/ //g' |awk -F"," '{print substr($1,1,3)substr($2,1,3)substr($2,6,1)}'" in it , $2 = $2(GC)
for example today's date is Friday, April 8, 2011 10:21:47 AM EDT , look for FriApr08 in the 3rd field

If 3rd field does not have the above date condition then $2 =$2(DR)


Thanks
# 2  
Old 04-08-2011
Code:
nawk '{A[$1]++}END{for(i in A) print i,(A[i]%2?i FS "(ERR)":i)}' file1 | tee file2

# 3  
Old 04-08-2011
For second condition:

Code:
 
to_day=`date | awk '{ print$1$2$3}'`
awk -v dat=$to_day '$3 ~ dat { $0=$2","$2"(GC)";print;next} {$0=$2","$2"(DR)";print}' OFS="," input_file


Last edited by panyam; 04-08-2011 at 12:45 PM.. Reason: added to_day calculation
# 4  
Old 04-08-2011
FYI, you can also use

Code:
date '+%a%b%e' | sed 's/ //g'

instead of your

Code:
date |sed 's/ //g' |awk -F"," '{print substr($1,1,3)substr($2,1,3)substr($2,6,1)}'

# 5  
Old 04-08-2011
To make all this stuff in a single shot!

Code:
awk -v dat=$to_day '{ A[$1]++ }
          $3 ~ dat { $0=$2","$2"(GC)";print > "file3" ; next }
          {$0=$2","$2"(DR)";print > "file3" }
          END{for(i in A) print i,(A[i]%2?i OFS "(ERR)":i)}' OFS="," input_file

# 6  
Old 04-08-2011
Code:
to_day=$(date '+%a%b%e' | sed 's/ //g')

Code:
nawk -v dat=$to_day '{x=($3~dat)?"(GC)":"(DR)";$0=$2","$2 x}1' file1 > file3

# 7  
Old 04-08-2011
This alone should be OK Smilie

Code:
to_day=$(date '+%a%b%0e')

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk problems - awk ignores conditions

awk 'BEGIN{ if('"$CATE"'<'"${WARN}"') printf ("%s", "'"`Kfunc "" ; break`"'") else if (('"${CATE}"'>='"${WARN}"') && ('"${CATE}"'<'"${CRIT}"')) printf ("%s", "'"`Wfunc ""; break`"'") else if ('"${CATE}"'>='"${CRIT}"') printf... (6 Replies)
Discussion started by: SkySmart
6 Replies

2. Shell Programming and Scripting

Checking multiple conditions in UNIX IF-ELSE

I am posting this info only after having confirmed the fact that there are no prior posts avialable that serves my purpose . In my Korn Shell script file , there are two shell variables which needs to be tested within a single if statement . Sample variables : $var1 and $var2 The check... (8 Replies)
Discussion started by: kumarjt
8 Replies

3. Shell Programming and Scripting

If conditions in awk

Hello Friends, I need to find some CDRs in production servers whose 1st field value and 2nd field value = 1 and 11th looks like 45.123... where there are more than 3 digits after comma.so i wrote a one liner, something like below but does not work, however when i used first and second conditions... (8 Replies)
Discussion started by: EAGL€
8 Replies

4. Shell Programming and Scripting

awk three conditions

I'm having a problem pulling UID's from data. The data outputs a user's UID in one of three ways: 1. Error User user_name already assigned with <UID> 2. Success <UID> reserved for user_name 3. <a load of crap because there was a db failure yet somehow the UID is still in there> I typically... (5 Replies)
Discussion started by: MaindotC
5 Replies

5. Shell Programming and Scripting

awk with conditions

Hi All, I have a file with below contents. "en2"/10.185.81.0:cluster_interconnect,"en5"/10.185.81.0:cluster_interconnect,"en6"/169.181.146.0:public I want to take the interface name from the file and convert it as ipaddress using ifconfig command get the output like below en6 ->... (2 Replies)
Discussion started by: kamauv234
2 Replies

6. Shell Programming and Scripting

Conditions in awk

Hi there, here is my command ssh host.local "/path/to/my/perscript/hostconfig.pl -s $HOST -d |awk '{if (\$4 > 120)print \"My error message\";exit}{s=0; for (i=1; i<=NF; i++) s++; if(s == 13) print \$3}'" The problem is if conditional 1 is met (i.e $4 > 120), i don't see "My error message", the... (5 Replies)
Discussion started by: urello
5 Replies

7. Shell Programming and Scripting

awk line with two conditions

Hi there, I wanna define a variable 'tempbase'. Therefore I read a text file "base.out". "base.out" contains a list with four columns. 'tempbase' is the 4th entry in the line, where the first entry is equal to the predefined variable $orb1 and the second entry is equal to $orb2. I wrote the code... (2 Replies)
Discussion started by: friend
2 Replies

8. Shell Programming and Scripting

awk with two conditions

Hi Everyone, # cat 1 1;2;3;4;5;6 1;2;3;4;5; # awk -F ";" '$5 == "5"' 1 1;2;3;4;5;6 1;2;3;4;5; but the output is should be just "1;2;3;4;5;6" means 1st condition: $5 is 5; 2nd condition: $6 is not empty, please advice. Thanks (2 Replies)
Discussion started by: jimmy_y
2 Replies

9. Shell Programming and Scripting

if, sed or awk with conditions

I do not know how to do this unless I use a bunch of if statements. I need a script to replace numbers in each record in a file. I am really getting tangled in this web. If a fieldA (19 positions) is greater than 14 digits, I have to change the data (resulting fieldA is fixed 19 postions). If... (5 Replies)
Discussion started by: ski
5 Replies

10. Shell Programming and Scripting

About awk conditions

Hello, Can you explain why in the first 2 commands the awk does not print anything? Is it looking of a specific format ? Thanks. $ echo 12a3 | awk '($1>=2) {print $1}' # prints nothing $ echo 123a | awk '($1>=2) {print $1}' # prints nothing $ echo a123 | awk '($1>=2) {print $1}' a123... (1 Reply)
Discussion started by: majormark
1 Replies
Login or Register to Ask a Question