awk script to match string and print status


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers awk script to match string and print status
# 15  
Old 02-17-2020
Dear RudC,

I did that change Smilie. Dont know what small mistake i am doing. Also, tried many options..
But no luck!!!

Code:
$ awk '

/cluster state:/        {print $1, $2
                         OK[$1] = 1
                         getline
                         next
                        }

/^Node/ && OK["LOTC"]   {if ($3 != "joined")    {print "LOTC cluster state is not ok"
                                                 OK["LOTC"] = 0
                                                }
                        }
OK["AMF"]               {if (" UNLOCKED ENABLED " !~ " " toupper($NF) " ") {print "AMF cluster state: is not ok"
                                                                            OK["AMF"] = 0
                                                                           }
                        }
END                     {for (o in OK) if (OK[o]) print o, " cluster state is ok"
                        }
' sample.txt
LOTC cluster
AMF cluster
AMF cluster state: is not ok
LOTC  cluster state is ok

$ cat sample.txt
LOTC cluster state:
-------------------
Node safNode=SC_2_1 joined cluster | Wed Dec 5 17:03:36 2018
Node safNode=SC_2_2 joined cluster | Wed Dec 5 17:03:36 2018
Node safNode=PL_2_3 joined cluster | Wed Dec 5 17:04:34 2018

AMF cluster state:
------------------
saAmfNodeAdminState."safAmfNode=SC-1,safAmfCluster=myAmfCluster": Unlocked
saAmfNodeOperState."safAmfNode=SC-1,safAmfCluster=myAmfCluster": Enabled
saAmfNodeAdminState."safAmfNode=SC-2,safAmfCluster=myAmfCluster": Unlocked
saAmfNodeOperState."safAmfNode=SC-1,safAmfCluster=myAmfCluster": Enabled

# 16  
Old 02-18-2020
Dear RudC,

Can you execute this code and share code with input file print. So, If i am doing any mistake will compare and fix.
As you get desired result in post#5.
# 17  
Old 02-20-2020
Executing the awk script in your post #15 with exactly the data given in that post, I get
Code:
LOTC cluster
AMF cluster
LOTC  cluster state is ok
AMF  cluster state is ok


So I presume you might have a problem with your input file, like e.g. DOS line terminators <CR> ( = \r = 0x0D = ^M) which would modify $NF beyond recognition for the comparison.
This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Search strings from a file in files in a directory recursively; then print the string with a status

Hi All, I hope somebody would be able to help me. I would need to search a string coming from a file, example file.txt: dog cat goat horse fish For every string, I would need to know if there are any files inside a directory(recursively) that contains the string regardless of case.... (9 Replies)
Discussion started by: kokoro
9 Replies

2. Shell Programming and Scripting

awk to print match or non-match and select fields/patterns for non-matches

In the awk below I am trying to output those lines that Match between file1 and file2, those Missing in file1, and those missing in file2. Using each $1,$2,$4,$5 value as a key to match on, that is if those 4 fields are found in both files the match, but if those 4 fields are not found then missing... (0 Replies)
Discussion started by: cmccabe
0 Replies

3. Shell Programming and Scripting

Match string from two files and print line

Hi, I have been trying to find help with my issue and I'm thinking awk may be able to do it. I have two files eg file1.txt STRING1 230 400 0.36 STRING2 400 230 -0.13 STRING3 130 349 1 file2.txt CUFFFLINKS 1 1394 93932 . + STRING1 CUFFFLINKS ... (9 Replies)
Discussion started by: zward
9 Replies

4. Shell Programming and Scripting

awk script to match and print

I need a script that will search for a string from column 1 in file A and when the string matches the last column in file B, print columns 1, 2 (file A) and columns 2, 3 (file B). input file A stringtomatch1 a stringtomatch2 a stringtomatch3 b file B junkcolumn1 printcolumn2... (4 Replies)
Discussion started by: ncwxpanther
4 Replies

5. Shell Programming and Scripting

Print string after the word match

Hi, I have the logs : cat logsx.txt 744906,{"reportingGroups":,"version":"2.0"} 678874,{"reportingGroups":,"version":"2.0"} 193571,{"reportingGroups":,"version":"2.0"} 811537,{"reportingGroups":,"version":"2.0"} 772024,{"reportingGroups":,"version":"2.0"}... (5 Replies)
Discussion started by: justbow
5 Replies

6. Shell Programming and Scripting

Print lines that match regex on xth string

Hello, I need an awk command to print only the lines that match regex on xth field from file. For example if I use this command awk -F"|" ' $22 == "20130117090000.*" 'It wont work, I think, because single quotes wont allow the usage of the metacharacter star * . On the other hand I dont know... (2 Replies)
Discussion started by: black_fender
2 Replies

7. Shell Programming and Scripting

How to print everything after a string match

Hi all, I'm trying to do some work on the authorized_keys file to do a check if there's any information after the hash key.. At the end of the hash key's in the file, there can be an = or == Is there a way to check if anything exists after these equals and if so print it out or else print... (2 Replies)
Discussion started by: Jazmania
2 Replies

8. Shell Programming and Scripting

awk to print lines based on string match on another line and condition

Hi folks, I have a text file that I need to parse, and I cant figure it out. The source is a report breaking down softwares from various companies with some basic info about them (see source snippet below). Ultimately what I want is an excel sheet with only Adobe and Microsoft software name and... (5 Replies)
Discussion started by: rowie718
5 Replies

9. Shell Programming and Scripting

exact string match ; search and print match

I am trying to match a pattern exactly in a shell script. I have tried two methods awk '/\<mpath${CURR_MP}\>/{print $1 $2}' multipath perl -ne '/\bmpath${CURR_MP}\b/ and print' /var/tmp/multipath Both these methods require that I use the escape character. I am guessing that is why... (8 Replies)
Discussion started by: bash_in_my_head
8 Replies

10. Shell Programming and Scripting

How to print exit status in AWK

Hi all, How can I print the exit status in AWK? echo $? doesnt work for me Thanks (4 Replies)
Discussion started by: Pauline mugisha
4 Replies
Login or Register to Ask a Question