Visit Our UNIX and Linux User Community

AWK matching problem

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting AWK matching problem
# 1  
Old 10-22-2009
AWK matching problem


i have a list as follow:
Taba 4
aba 1
Taba 2
aba 1
aba 0
where "aba" can be zero or one. I want match all "aba" and count how many are set to one. I mean in the previous case i should get just "2":

I tried as follow:

awk '/^aba/ BEGIN{i=0}{if($2==1) i=i+1}END{print i}' file

but i get some errors.
If i do:

awk '/^aba/ {print $0}' do

I get the list with all "aba " i think that the problem refers to the BEGIN. Can anyone suggest a solution?


# 2  
Old 10-22-2009
awk '$1 ~ /^aba/  && $2 ~ /1/ {i = i+1} END {print i}' a.txt


awk '$1 == "aba"  && $2 == "1" {i = i+1} END {print i}' a.txt

# 3  
Old 10-22-2009
to be more precise in case you have things like "abalone 1" , use equality
awk '$1=="aba" && $2==1{c++}END{print c}' file

# 4  
Old 10-22-2009
thanks for both solutions


EDIT: i found out also that in this way works:

awk '/^aba/ {if($2==1) i=i+1}END{print i}' file


Last edited by Dedalus; 10-22-2009 at 12:57 PM..
# 5  
Old 10-22-2009
awk '$0=="aba 1"{i++}END{print i}' file

Previous Thread | Next Thread
Test Your Knowledge in Computers #259
Difficulty: Easy
Steve Jobs was born in San Francisco, California, and put up for adoption.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to combine all matching dates and remove non-matching

Using the awk below I am able to combine all the matching dates in $1, but I can not seem to remove the non-matching from the file. Thank you :). file 20161109104500.0+0000,x,5631 20161109104500.0+0000,y,2 20161109104500.0+0000,z,2 20161109104500.0+0000,a,4117... (3 Replies)
Discussion started by: cmccabe
3 Replies

2. Shell Programming and Scripting

Pattern matching problem

if i have to do pattern match for file name with digit alphanumeric value like this File_1234.csv File_12sd45rg.csv i am using this File_*.csv and File_*.csv for digit pattern match. when i am doing pattern match for the digit then both alphanumeric match and digit match is coming. ... (3 Replies)
Discussion started by: ramsavi
3 Replies

3. Shell Programming and Scripting

Pattern matching problem

Hi I need a bash script that can search through a text file for all lines starting with 71502FSC1206 on every line it finds starting with this I need to place a letter F at the 127 position on that line. Thanks Paul (6 Replies)
Discussion started by: firefox2k2
6 Replies

4. Shell Programming and Scripting

awk: matching and not matching

Hello all, simple matching and if not match problem that i can't figure out. file1 hostname: 30 10 * * * /home/toto/start PROD instance_name1 -p 00 9 * * * /home/toto/start PROD instance_name2 -p 15 8 * * * /home/toto/start PROD instance_name3 -p hostname2: 00 8 * * *... (5 Replies)
Discussion started by: maverick72
5 Replies

5. Shell Programming and Scripting

pattern matching problem

# cat email.txt | grep -i "To:" To: <> # cat email.txt | grep -i "Subject" Subject: Test Subject: How are you. I need to print only from To field need to eliminate "< & >" from To field and need to print entire subject after Subject: It should be #... (7 Replies)
Discussion started by: mirfan
7 Replies

6. Shell Programming and Scripting

awk pattern matching problem -not recognizing a column

Hi all, I am new to awk. I want to print the line numbers if the column has a particular value. For example I have: cat FILE1 COL1 COL2 X114 0 X116 0 X117 0 X120 0 X121 0 X125 0 X126 0 X127 0 X131 1 X132 0 X135 0 X136 0 (3 Replies)
Discussion started by: newpro
3 Replies

7. Shell Programming and Scripting

awk BEGIN END and string matching problem

Hi, Contents of BBS-list file: foo foo foo awk ' BEGIN { print "Analysis of \"foo\"" } /foo/ { ++n } END { print "\"foo\" appears", n, "times." }' BBS-list Output: Analysis of "foo" "foo" appears 3 times. awk ' (3 Replies)
Discussion started by: cola
3 Replies

8. Shell Programming and Scripting

matching file problem

hi I need help for matching two files a.txt 123,20080921,2419,ec1,20081021 456,20080923,2420,ec1,20081021 789,20080920,2419,ec1,20081021 124,20080921,2421,ec1,20081023 125,20080921,2419,ec1,20081021 126,20080921,2419,ec1,20081021 128,20080921,2419,ec1,20081021 b.txt ... (2 Replies)
Discussion started by: anish19
2 Replies

9. Shell Programming and Scripting

pattern matching problem

FilesToBackup='*.track* *.xml *.vm* *.gz Trace* TRACE* "*core*" *.out fcif_data_* esi_error_* *.rollback *.sed R.* APStatus_* log* *.output* send_mail* downenv* check_env* intaspurge_db_* sqlnet.log *.rpt *.html *.csv "*TSC*"' and i am using it like this- echo Moving files from $(pwd): ... (2 Replies)
Discussion started by: namishtiwari
2 Replies

10. Shell Programming and Scripting

Problem with pattren Matching

I have a set of programs and there coressponding MAPSETs i tried grep on the all the programs and got the following out put from this i want to extract only the Program Name and Mapset name {i.e. the word in (' ') after MAPSET } There or some cases where u have no ( after MAPSET that need... (7 Replies)
Discussion started by: pbsrinivas
7 Replies

Featured Tech Videos