Count lines separated by new line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Count lines separated by new line
# 1  
Old 04-06-2013
Count lines separated by new line

Hi guys,

I have a file which has random records like mentioned below

Code:
emcpower28a
pci@3,03 (disk physical name)
pci@3,04

emcpower9a
pci@1,03
pci@2,03
pci@3,01
pci@4,03

there could be any number of disk names for any LUN (emc...) So, I want a solution to count disk names for its respective LUN which means

emcpower28a - 2
emcpower9a - 4

Can somebody help me in this? I am not able to think of any idea to achieve this.
# 2  
Old 04-06-2013
You want to count the records the start with emc?

Code:
grep -c '^emc' inputfile

# 3  
Old 04-06-2013
Quote:
Originally Posted by prashant2507198
Hi guys,

I have a file which has random records like mentioned below

Code:
emcpower28a
pci@3,03 (disk physical name)
pci@3,04

emcpower9a
pci@1,03
pci@2,03
pci@3,01
pci@4,03

there could be any number of disk names for any LUN (emc...) So, I want a solution to count disk names for its respective LUN which means

emcpower28a - 2
emcpower9a - 4

Can somebody help me in this? I am not able to think of any idea to achieve this.
Where does the text I highighted in red above come from?
# 4  
Old 04-06-2013
Well, as I have mentioned in my original post. Each LUN (emcpower...) can have multiple disk names. So your red marked numbers are count of those disks. In my example emcpower28a has 2 disks so I mentioned number 2 there. Thats what I want to calculate. You understand what I mean?
# 5  
Old 04-06-2013
Code:
awk '/^emc/{p=$0}!/^emc/&&NF{A[p]++}END{for(c in A) print c,A[c]}' OFS=" - " file

# 6  
Old 04-06-2013
Quote:
Originally Posted by jim mcnamara
You want to count the records the start with emc?

Code:
grep -c '^emc' inputfile

No, I want to count number of disks associated with each emcpower. As in my example 1 LUN has 2 disks associated and another has 4. This is what I want to calculate.

---------- Post updated at 08:30 AM ---------- Previous update was at 08:29 AM ----------

Quote:
Originally Posted by Yoda
Code:
awk '/^emc/{p=$0}!/^emc/&&NF{A[p]++}END{for(c in A) print c,A[c]}' OFS=" - " file

What it will do?
# 7  
Old 04-06-2013
Quote:
Originally Posted by prashant2507198
What it will do?
It will produce an output as per your requirement.

Input file:
Code:
$ cat file
emcpower28a
pci@3,03 (disk physical name)
pci@3,04

emcpower9a
pci@1,03
pci@2,03
pci@3,01
pci@4,03

Output:
Code:
$ awk '/^emc/{p=$0}!/^emc/&&NF{A[p]++}END{for(c in A) print c,A[c]}' OFS=" - " file
emcpower9a - 4
emcpower28a - 2

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Combining multiple block of lines in one comma separated line

Hi Everyone, On my Linux box I have a text file having block of few lines and this block lines separated by one blank line. I would like to format and print these lines in such a way that this entire block of lines will come as single comma separated line & again next block of lines in next... (7 Replies)
Discussion started by: gr8_usk
7 Replies

2. Shell Programming and Scripting

Want to count the number of lines after the first line

hi, How can i count the number of lines after the first line in a flat file in unix? Say i have a flat file with a header like: Student Name Student ID .... Tnx (7 Replies)
Discussion started by: reignangel2003
7 Replies

3. Shell Programming and Scripting

Need to concatenate spuriously separated lines

Given the pattern below: 3113296571|NULL|NULL|NULL||N| 1| 0| 926667| 1001036| 0| 3076120438|NULL|NULL|NULL|NULL|DUE FOR NEW CONSENT!|N|NULL| 10198318|2011-07-25-12.34.02.786000|NULL|NULL|NULL| 0 3113336478|NULL|NULL|NULL||N| 1| ... (16 Replies)
Discussion started by: lemele
16 Replies

4. Shell Programming and Scripting

Parse large file on line count (random lines)

I have a file that needs to be parsed into multiple files every time there line contains a number 1. the problem i face is the lines are random and the file size is random. an example is that on line 4, 65, 187, 202 & 209 are number 1's so there has to be file breaks between all those to create 4... (6 Replies)
Discussion started by: darbs121
6 Replies

5. Shell Programming and Scripting

Print pipe separated list as line by line in Korn Shell

Korn Shell in AIX 6.1 I want to print the below shown pipe (|) separated list line by line. line=es349889|nhb882309|ts00293|snh03524|bg578835|bg37900|rnh00297|py882201|sg175883 for i in line do echo "Hello $line " done I wanted to execute the above for loop. But i can't even set the... (3 Replies)
Discussion started by: polavan
3 Replies

6. Shell Programming and Scripting

awk: sort lines by count of a character or string in a line

I want to sort lines by how many times a string occurs in each line (the most times first). I know how to do this in two passes (add a count field in the first pass then sort on it in the second pass). However, can it be done more optimally with a single AWK command? My AWK has improved... (11 Replies)
Discussion started by: Michael Stora
11 Replies

7. Shell Programming and Scripting

use shellscript to find the count of a line in a set of lines

I have a file a.xml some portion of the file is given below.But the file format is same. CTYPE available_templates SYSTEM './available_templates.dtd'> <available_templates> <template_file name="Approve External" path="core/approve/bin" <command_list> <command... (1 Reply)
Discussion started by: millan
1 Replies

8. Shell Programming and Scripting

Separate lines in a single '|' separated line

Hi I have a file with contents like china india france japan italy germany . . . . etc.... I want the output as china|india|france|japan|italy|germany|.|.|. (3 Replies)
Discussion started by: hidnana
3 Replies

9. UNIX for Dummies Questions & Answers

How to count lines - ignoring blank lines and commented lines

What is the command to count lines in a files, but ignore blank lines and commented lines? I have a file with 4 sections in it, and I want each section to be counted, not including the blank lines and comments... and then totalled at the end. Here is an example of what I would like my... (6 Replies)
Discussion started by: kthatch
6 Replies

10. Shell Programming and Scripting

two lines into one colon separated line...

Does anyone know how to get these two output lines into one colon ':' separated line with some unix command? Maybe nawk. I've tried to read the nawk and awk man pages but I don't get it right. Are these commands the one to use? Output from find command: # /sw/tools/matlab/7.0.1/man... (2 Replies)
Discussion started by: tonlu
2 Replies
Login or Register to Ask a Question