Checking conditions with AWK


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Checking conditions with AWK
# 8  
Old 04-08-2011
One shot :
Code:
to_day=$(date '+%a%b%e' | sed 's/ //g')
awk -v dat=$to_day '{A[$1]++;x=($3~dat)?"(GC)":"(DR)";print $2","$2 x >"file3"}END{for(i in A) print i,(A[i]%2?i FS "(ERR)":i) >"file2"}' file1

use nawk if on SunOS / Solaris

@ Panyam Smilie

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

Will give (on Linux)
Code:
FriApr08

Whereas in the file the format is
Code:
FriApr8

By the way, this '0' option is not standard ...unknown on my solaris for example(see below) (... but ok it works on Linux ).
Code:
# date '+%a%b%0e'
FriApr%0e
# date '+%a%b%e'
FriApr 8


Last edited by ctsgnb; 04-08-2011 at 02:27 PM..
# 9  
Old 04-08-2011
Thanks for the quick response Guys !
# 10  
Old 04-08-2011
Thanks ctsgnb. How ever, I got a different result in my system ( might be OS dependent)!!!!

Code:
 
date '+%a%b%0e'
FriApr8
uname -a
HP-UX avalon B.11.11 U 9000/800 3547052374 unlimited-user license

# 11  
Old 04-08-2011
have another quick one ....

If i have a file with lines like this
Code:
 
 
2917    0DDD   RDF1+TDEV       75(5)   2917_3RAID5     33      05F:0_10F:0     10000000c961408f    0A9B   0AA1


and a reference file like this ...

Code:
 
0A9B,0A9B(DR)
0AA1,0AA1(GC)
0DDD,0DDD(ERR)

I want to replace column 2 ,9 and 10 with column 2 value of reference file if it matches to column 1 of reference file . If there is no match ..keep the same value

Output
Code:
 
2917    0DDD(ERR)   RDF1+TDEV       75(5)   2917_3RAID5     33      05F:0_10F:0 10000000c961408f    0A9B(DR)   0AA1(GC)

thx
# 12  
Old 04-09-2011
Code:
awk 'NR==FNR{$1=$1;A[$1]=$2}NR!=FNR{FS="  *";for(i=2;i<=NF;i++) {$i=(A[$i])?A[$i]:$i""};print}' FS=, referencefile FS=" " inputfile

# 13  
Old 04-09-2011
Thanks a lot ...
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