How to grep and count the occurences in while read script?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to grep and count the occurences in while read script?
# 1  
Old 04-07-2013
Linux How to grep and count the occurences in while read script?

Hi,

I have a file while is the output of lspath command and output of file is
Code:
#cat lspath.txt
Enabled hdisk0 vscsi0
Enabled hdisk0 vscsi1
Enabled hdisk1 vscsi0
Enabled hdisk2 vscsi0
Enabled hdisk2 vscsi1
Missing hdisk3 vscsi0
Enabled hdisk3 vscsi1

Have created script to check state other than "Enabled" as below,
Code:
cat lspath.txt |while read STAT HD PATH
do
if [ $STAT != Enabled ];then
echo "The $HD is $STAT state in $PATH"   
else
fi

Having doubt, in the same script how to find out a disk having 2 paths or single path
using any grep or wc or count?. Kindly help

Last edited by Franklin52; 04-08-2013 at 03:08 AM.. Reason: Please use code tags for data and code samples
# 2  
Old 04-07-2013
You didn't mention your OS and SHELL!

Modern version of KSH supports associative arrays that can be used for counting:
Code:
#!/bin/ksh

typeset -A P
while read status disk path
do
        (( P[$disk]++ ))
done < lspath.txt

for key in ${!P[*]}
do
        print "$key = ${P[$key]}"
done

Output:
Code:
hdisk0 = 2
hdisk1 = 1
hdisk2 = 2
hdisk3 = 2

# 3  
Old 04-08-2013
Linux Re:How to grep and count the occurences in while read script?

Hi Yoda,

Thanks for posting your reply. I tried the same with "lspath" command instead of the lspath.txt, facing the following error. Pls find the script i modified and the output. FYI - My OS is AIX and shell is KSH

********Script******
Code:
#cat lspathavail.sh
typeset -A P
lspath|while read status disk path
do
        (( P[$disk]++ ))
done

for key in ${!P[*]}
do
        print "$key = ${P[$key]}"
done

Code:
#sh -x  lspathavail.sh
+ typeset -A P
fromnet.sh[2]: typeset: 0403-010 A specified flag is not valid for this command.

Pls advice.

Last edited by Franklin52; 04-08-2013 at 05:26 AM.. Reason: Please use code tags for data and code samples
# 4  
Old 04-08-2013
Try with typeset -a P

And please use code tags!

--ahamed

Last edited by ahamed101; 04-08-2013 at 04:48 AM..
# 5  
Old 04-08-2013
By awk:
Code:
awk '/Enabled/{++s[$2]} END {for(f in s) print f,s[f]}' lspath.txt

# 6  
Old 04-08-2013
Linux

Hi Michael,

Extraordinary !!. Could you pls help to display the state which is not "Enabled" (i.e., Missing) in the same script for the below file.

Code:
#cat lspath.txt 
Enabled hdisk0 vscsi0
Enabled hdisk0 vscsi1 
Enabled hdisk1 vscsi0 
Enabled hdisk2 vscsi0 
Enabled hdisk2 vscsi1 
Missing hdisk3 vscsi0 
Enabled hdisk3 vscsi1

# 7  
Old 04-08-2013
Code:
awk '{s[$1" "$2]++} END {for(f in s) print f,s[f]}' lspath

This User Gave Thanks to pravin27 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Count the occurences of strings

I have some text files in a folder f1 with 10 columns. The first five columns of a file are shown below. aab abb 263-455 263 455 aab abb 263-455 263 455 aab abb 263-455 263 455 bbb abb 26-455 26 455 bbb abb 26-455 26 455 bbb aka 264-266 264 266 bga bga 230-232 230 ... (10 Replies)
Discussion started by: gomez
10 Replies

2. Shell Programming and Scripting

awk count occurences

line number:status, market, keystation 1,SENT,EBS,1 : 1 2,DONE,REU,1 : 1 3,SENT,EBS,2 : 1 4,DONE,EBS,1 : 0 5,SENT,EBS,2 : 0 6,SENT,EBS,2 : 0 7,SENT,EBS,2 : 0 8,SENT,EBS,1 : 1 for each status, market combination I want to keep a tally of active orders. i.e if an order is SENT, then +1, if... (8 Replies)
Discussion started by: Calypso
8 Replies

3. Shell Programming and Scripting

Count number of occurences using awk

Hi Guys, I have 2 files like below file1 xx yy file2 b yy b2 xx c1 yy xx yy Now I want an idea which can count occurences of text from file1 and file2 so outbout would be kind of (9 Replies)
Discussion started by: prashant2507198
9 Replies

4. UNIX for Dummies Questions & Answers

Count pattern occurences

hi, I have a text..and i need to find a pattern in the text and count to the no of times the pattern occured. i have used grep command ..but the problem is , it shows the occurrences of the pattern but doesn't count no of times the pattern occuries. (5 Replies)
Discussion started by: nvnni
5 Replies

5. Shell Programming and Scripting

Count occurences of string

Hi, Please help me in finding the number of occurences of the string. Example: Apple, green, blue, Apple, Orange, green, blue are the strings can be even in the next line. The o/p should look as: Word Count ----- ----- Apple 2 green 2 Orange 1 blue 2 Thanks (2 Replies)
Discussion started by: acc888
2 Replies

6. Shell Programming and Scripting

Awk to count occurences

Hi, i am in need of an awk script to accomplish the following: Input table looks like: Student1 arts Student2 science Student3 arts Student4 science Student5 science Student6 science Student7 science Student8 science Student9 science Student10 science Student11 science... (8 Replies)
Discussion started by: saint2006
8 Replies

7. Shell Programming and Scripting

to count the number of occurences of a column value

im trying to count the number of occurences of column 2 value(starting from KKK*) of the below file, file.txt using the code cat file.txt | awk ' BEGIN { print "Category Counts"} {FS=","} {NR > 2} { cats = cats + 1} END { for(c in cats) { print c, "=", cats} } ' but its returning as ... (6 Replies)
Discussion started by: michaelrozar17
6 Replies

8. Shell Programming and Scripting

Perl - Count occurences

I have enclosed the script. I am able to find the files that contain my search string but when I try to count the occurences within the file I get zero always. Any help on this. #!/usr/bin/perl my $find = $ARGV; my $replace = $ARGV; my $glob = $ARGV; @filelist = <*$glob>; # process each... (22 Replies)
Discussion started by: TimHortons
22 Replies

9. Shell Programming and Scripting

How to count the number of occurences of this pattern?

Hi all, I have a pattern like this in a file: 123 4 56 789 234 5 67 789 121 3 56 789 222 4 65 789 321 6 90 100 478 8 40 789 243 7 80 789 How can I count the number of occurences of '789' (4th column) in this set...? Thanks for all your help! K (7 Replies)
Discussion started by: kripssmart
7 Replies

10. Shell Programming and Scripting

grep and count no of occurences in every line of a file

Hi Folks, I have a input file of the below format. ~~~OLKIT~OLKIT~1~~TBD~BEST PAGER & WIRELESS~4899 COMMON MARKET PLACE~~~DUBLIN~KS~43016~I~Y~DIRECT~D~~0 BPGRWRLS~~~OLKIT~OLKIT~1~~TBD~BEST PAGER & WIRELESS~4899 COMMON MARKET PLACE~~~DUBLIN~KS~43016~I~Y~DIRECT~D~~0... (12 Replies)
Discussion started by: srikanthgr1
12 Replies
Login or Register to Ask a Question