Script to count number of rows


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Script to count number of rows
# 1  
Old 12-14-2013
Script to count number of rows

Hi,

I need a solaris shell script to read multiple files and count number of unique name rows(strings) from those files. The input and output should be like this
Input:
file 1
Code:
abc                          
cde                          
abc                          
abc

file 2
Code:
xyz
kds
abc
cde

file 3
Code:
xyz
abc
cde
abc


Output:
In the input total no of strings are 12 but abc is repeated 6 times,cde is repeated 3 times and xyz is repeated 2 times and kds once. As per my requirement though the total count is 12 it should show count as 4(i.e unique strings) only

i.e , output is Count = 4

Can any help me please............

Thanks in advance>>

Last edited by Scrutinizer; 12-14-2013 at 04:18 AM.. Reason: code tags
# 2  
Old 12-14-2013
Try:
Code:
/usr/xpg4/bin/awk '!A[$1]++{c++} END{print c}' file*





--
Or:
Code:
cat file* | sort -u | wc -l

But that would be sensitive to excess spacing, which might be a problem if the files have been edited manually.
So then you might need something like this:
Code:
awk '{print $1}' file* | sort -u | wc -l


Last edited by Scrutinizer; 12-14-2013 at 04:32 AM..
# 3  
Old 12-14-2013
This should also work with /usr/bin/awk=oawk
Code:
awk '0==A[$1]++ {c++} END {print c}' file*

# 4  
Old 12-23-2013
Hi everyone,

Thanks for your help.
Based on your answers I got my solution with this script....

Code:
cat file*| awk '{print $1}'| sort -u |uniq |wc -l


Once again thanks for your valuable time...

Last edited by Scrutinizer; 12-23-2013 at 02:52 AM.. Reason: code tags
# 5  
Old 12-23-2013
You are welcome. The solution could be shortened still by leaving out uniq (which is superfluous after sort -u) and cat (which is not necessary because awk can read multiple files). Like so:
Code:
awk '{print $1}' file* | sort -u | wc -l


--
In Solaris you may need nawk, but I think regular awk can do this too

Last edited by Scrutinizer; 12-23-2013 at 03:02 AM..
# 6  
Old 12-23-2013
Hi Scrutinizer,

I just checked your inputs,,, you are correct and both are giving the same output.

Thanks for the optimization.
# 7  
Old 02-19-2014
Hi All,

I have two questions:

1) I need to list the folders in descending order of their memory and that to be in MB
ex: 100M file1.txt
50M file2.txt
10K file3.txt

etc.,

2) I have the list like this in a file with two columns as below:

ex: 100M file1.txt
50M file2.txt
10K file3.txt
...........
1M filex.txt
............

I need to display the lines only that contain M as last letter in the first column of every row.

My output should be like this : 100M file1.txt
50M file2.txt
1M filex.txt
...........
...........


Thanks in Advance
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

What script would I use to count the number of a term and its opposite?

Hello All, I am looking to write a script to count the number of a term and its opposite and create a new file with said list. I can get the terms to print to the file but only one or the other and not both. I tried this: grep -wi done */all.txt | grep -wiv done */all.txt > "filename" ... (5 Replies)
Discussion started by: mcesmcsc
5 Replies

2. Shell Programming and Scripting

Reseting row count every given number of rows

I have a file with 48 rows. I am counting 6 rows and adding 6 to that number and repeating the operation, and then output the value in column 1. For the second column, I would like to get sort of a binary output (1s and 2s) every 3rd row. This is what I have: awk '{print ++src +... (1 Reply)
Discussion started by: Xterra
1 Replies

3. Shell Programming and Scripting

Extract and count number of Duplicate rows

Hi All, I need to extract duplicate rows from a file and write these bad records into another file. And need to have a count of these bad records. i have a command awk ' {s++} END { for(i in s) { if(s>1) { print i } } }' ${TMP_DUPE_RECS}>>${TMP_BAD_DATA_DUPE_RECS}... (5 Replies)
Discussion started by: Arun Mishra
5 Replies

4. Shell Programming and Scripting

Script to count number of files in directories

Hi All! I would like to have a script that will count the number of files at the top of the hour of soome directories and mail the results to me. I was thinking on : a=`/directory/subdirectory/ | wc -l` echo "/directory/subdirectory :$a" b=`/another_dir/subdir/ | wc -l` echo... (12 Replies)
Discussion started by: fretagi
12 Replies

5. Shell Programming and Scripting

Shell script to count unique rows in a CSV

HI All, I have a CSV file of 30 columns separated by ,. I want to get a count of all unique rows written to a flat file. The CSV file is around 5000 rows The first column is a time stamp and I need to exclude while counting unique Thanks, Ravi (4 Replies)
Discussion started by: Nani369
4 Replies

6. UNIX for Dummies Questions & Answers

count number of rows based on other column values

Could anybody help with this? I have input below ..... david,39 david,39 emelie,40 clarissa,22 bob,42 bob,42 tim,32 bob,39 david,38 emelie,47 what i want to do is count how many names there are with different ages, so output would be like this .... david,2 emelie,2 clarissa,1... (3 Replies)
Discussion started by: itsme999
3 Replies

7. Shell Programming and Scripting

how to add the number of row and count number of rows

Hi experts a have a very large file and I need to add two columns: the first one numbering the incidence of records and the another with the total count The input file: 21 2341 A 21 2341 A 21 2341 A 21 2341 C 21 2341 C 21 2341 C 21 2341 C 21 4567 A 21 4567 A 21 4567 C ... (6 Replies)
Discussion started by: juelillo
6 Replies

8. UNIX for Dummies Questions & Answers

how to count number of rows and sum of column using awk

Hi All, I have the following input which i want to process using AWK. Rows,NC,amount 1,1202,0.192387 2,1201,0.111111 3,1201,0.123456 i want the following output count of rows = 3 ,sum of amount = 0.426954 Many thanks (2 Replies)
Discussion started by: pistachio
2 Replies

9. Shell Programming and Scripting

Script to find the average of a given column and also for specified number of rows?

Hi Friends, In continuation to my earlier post https://www.unix.com/shell-programming-scripting/99166-script-find-average-given-column-also-specified-number-rows.html I am extending my problem as follows. Input: Column1 Column2 MAS 1 MAS 4 ... (2 Replies)
Discussion started by: ks_reddy
2 Replies

10. Shell Programming and Scripting

Script to find the average of a given column and also for specified number of rows??

Hi friends I have 100 files in my directory. Each file look like this.. Temp1 Temp2 Temp3 MAS 1 2 3 MAS 4 5 6 MAS 7 8 9 Delhi 10 11 12 Delhi 13 14 15 Delhi 16 17 ... (4 Replies)
Discussion started by: ks_reddy
4 Replies
Login or Register to Ask a Question