Condition check using awk


 
Thread Tools Search this Thread
# 1  
Condition check using awk

Hi,
I have a file in the following format

Code:
"SYLVESTER,WILLARD G"|"S00633600"|"221052958A"|"H2256"|"015"|""|"00000042BASJ"|"665303"|"N"|"20100211"|"380.4"|""|""|""|"5400"|"20110218"|""|"20110218"|"FEESC"|"D"|"F"|"P"
"PURINGTON-KELLEY,C"|"S00808783"|"029424717A"|"H2256"|"024"|"MEMBER JOINED ANOTHER MEDICARE RISK PLAN"|"00000049BAQS"|"SS2323"|"Y"|"20100218"|"728.87"|"782.0"|""|""|"6040"|"20110218"|""|"20110218"|"FEESC"|"D"|"F"|"P"

I need to check if first two characters of the 8th column start with SS. If they start with SS , replace the 8th column by "MEMBER" else replace the 8th column by "PROVIDER"

Desired output :
Code:
"SYLVESTER,WILLARD G"|"S00633600"|"221052958A"|"H2256"|"015"|""|"00000042BASJ"|"PROVIDER"|"N"|"20100211"|"380.4"|""|""|""|"5400"|"20110218"|""|"20110218"|"FEESC"|"D"|"F"|"P"
"PURINGTON-KELLEY,C"|"S00808783"|"029424717A"|"H2256"|"024"|"MEMBER JOINED ANOTHER MEDICARE RISK PLAN"|"00000049BAQS"|"MEMBER"|"Y"|"20100218"|"728.87"|"782.0"|""|""|"6040"|"20110218"|""|"20110218"|"FEESC"|"D"|"F"|"P"

This is something I tried using awk but not sure how to specify the column name

search=SS
replace=member

awk -v srch="$search" -v repl="$replace" '{ sub(srch,repl,$0); print $0 }' newfile


Can someone please help
# 2  
Code:
awk -v qq='"' '{$8= (qq ($8~("^"qq"SS")?"MEMBER":"PROVIDER"))}1' FS='|' OFS='|' myFile

This User Gave Thanks to vgersh99 For This Post:
# 3  
Here you go:
Code:
$ provider=PROVIDER
$ awk -v srch="$search" -v repl="$replace" -vprov=$provider\
    'BEGIN {FS="\"\|\"";OFS="\"|\""}
     {$8=($8~"^"srch)?repl:prov}
     1
    '  file
"SYLVESTER,WILLARD G"|"S00633600"|"221052958A"|"H2256"|"015"|""|"00000042BASJ"|"PROVIDER"|"N" . . .
"PURINGTON-KELLEY,C"|"S00808783"|"029424717A"|"H2256"|"024"|"MEMBER JOINED ANOTHER MEDICARE RISK PLAN"|"00000049BAQS"|"MEMBER"|"Y". . .

P.S.: small addition to vgersh99's proposal: "))}1 --- ") qq)}1>
# 4  
Here is another way to do it using "|" as the field separator instead of just |:
Code:
awk -F '"\\|"' 'BEGIN{OFS = "\"|\""}
{$8 = ($8 ~ /^SS/) ? "MEMBER" : "PROVIDER"}
1' myFile

 

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Science: Gadgets
Difficulty: Medium
The Western Electric Model 500 telephone uses tone dialing to dial phone numbers.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Check two condition in while loop

Hi, I Have to check two condition in while loop every 2 minutes. while loop is accompanied with number of times it will check.Please help in putting the two condition in while loop as appropriate. z= input value, A=1 while do 1.check the file output,if the file output is N then keep on... (2 Replies)
Discussion started by: netdbaind
2 Replies

2. Shell Programming and Scripting

If condition to check null variable

Guys, Please help me on the below sample.cfg var=NULL sample.sh #!/bin/sh . /sample.cfg if ;then 1 st command here else 2 nd command here fi (3 Replies)
Discussion started by: AraR87
3 Replies

3. Shell Programming and Scripting

Check the value in xml based on condition

Hi, I have a log file having n number of xml's like the one below. <uOStatus xmlns:env="http://abc.org/def/ghi/"... (3 Replies)
Discussion started by: Neethu
3 Replies

4. UNIX for Dummies Questions & Answers

If condition to check one file newer than the other

Dear All, I'm new to unix scripting. I'm trying to write an utility script which has to check if one file is newer than another one. $3 $4 $5 $6 are files .txt. Help me please. for i in $3 $4 $5 $6 do if then echo "$1 is newer than $i" else echo "$i is newer than $1" fi (9 Replies)
Discussion started by: Manueldo
9 Replies

5. Shell Programming and Scripting

if condition to check the hostname (unix)

I want to know the if condition in checking the hostname in unix and then running a cron job (all in a single line) Thanks (2 Replies)
Discussion started by: prash358
2 Replies

6. Shell Programming and Scripting

HELP with AWK one-liner. Need to employ an If condition inside AWK to check for array variable ?

Hello experts, I'm stuck with this script for three days now. Here's what i need. I need to split a large delimited (,) file into 2 files based on the value present in the last field. Samp: Something.csv bca,adc,asdf,123,12C bca,adc,asdf,123,13C def,adc,asdf,123,12A I need this split... (6 Replies)
Discussion started by: shell_boy23
6 Replies

7. Shell Programming and Scripting

How to take a full sentence and check the condition?

I have one input file and content of file is : --------------------------------------------------- Input.txt --------------------------------------------------- american express Bahnbau GmbH Bahnbau GmbH CRH Europe crh europe Helgeland Ferdigbetong AS... (8 Replies)
Discussion started by: humaemo
8 Replies

8. Shell Programming and Scripting

WHILE LOOP CONDITION CHECK

Hello I want to compare values of two variables as CHECK condition in a while loop. eg: var1=0 var2=10 while do echo " $var1 " var1=`expr $var1 + 1` done However this is giving error.How to do it in a proper manner? Thanks. (3 Replies)
Discussion started by: dashing201
3 Replies

9. Solaris

finding difficult to check a condition

Hi all, I have a condition if(($x>0)) then echo "ok" x=`sqlplus -s dmiapp/dmiappl_04@dmid << EOF SELECT count(*) FROM $TABLE_NAME exit EOF` Now the problem occurs when the above code returns an error message (RETURNs a string... (1 Reply)
Discussion started by: megh
1 Replies

Featured Tech Videos