Sponsored Content
Top Forums Shell Programming and Scripting Count lines separated by new line Post 302790687 by prashant2507198 on Saturday 6th of April 2013 09:43:30 AM
Old 04-06-2013
Quote:
Originally Posted by Yoda
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

Well, it didn't give expected output.

Let me show you what I did.

File has records like this

Code:
Pseudo name=emcpower0a
3076 pci@2,600000/SUNW,emlxs@0/fp@0,0 c1t5Fd94s0 FA 13cA   active  alive      0      0
3075 pci@12,600000/SUNW,emlxs@0/fp@0,0 c3t5Dd94s0 FA  4cA   active  alive      0      0

Pseudo name=emcpower8a
3076 pci@2,600000/SUNW,emlxs@0/fp@0,0 c1t5Cd95s0 FA 13cA   active  alive      0      0
3075 pci@12,600000/SUNW,emlxs@0/fp@0,0 c3t53d95s0 FA  4cA   active  alive      0      0
3073 pci@12,600000/SUNW,emlxs@0/fp@0,0 c3t54d95s0 FA  4cA   active  alive      0      0

Pseudo name=emcpower15a
3076 pci@2,600000/SUNW,emlxs@0/fp@0,0 c1t57d165s0 FA 13cA   active  alive      0      0
3075 pci@12,600000/SUNW,emlxs@0/fp@0,0 c3t52d165s0 FA  4cA   active  alive      0      0

I fired below awk command and got some error
Code:
awk '/^emc/{p=$0}!/^emc/&&NF{A[p]++}END{for(c in A) print c,A[c]}' OFS=" - " /tmp/dev1
awk: syntax error near line 1
awk: bailing out near line 1

So I used nawk which ran successfully however didn't produce expected output.

Code:
nawk '/^emc/{p=$0}!/^emc/&&NF{A[p]++}END{for(c in A) print c,A[c]}' OFS=" - " /tmp/dev1
 - 696

---------- Post updated at 08:43 AM ---------- Previous update was at 08:40 AM ----------

Based on above reply I want output something like

Code:
emcpower0a - 2
emcpower8a - 3
emcpower15a - 2

 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
All times are GMT -4. The time now is 06:42 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy