Counting no of lines between two strings in a file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Counting no of lines between two strings in a file
# 1  
Old 06-27-2008
Question Counting no of lines between two strings in a file

Hi all,

I'm very very new to UNIX and AWK world.Please help me in finding a solution for my problem.
I'm having a file like this
-----------------------------------------------------------------
~Version Information
VERS. 2.0: CWLS log ASCII Standard -VERSION 2.0
WRAP. YES: Multiple lines per depth step
~Well Information Block
#MNEM.UNIT Data Type Information
#--------- ----------- ---------------------------
STRT.M -0.9144:
STOP.M 1103.6830:
STEP.M 0.0762:
NULL. -999.2500:
UWI . xxxxxxxxxxxxxxxxx: UWI
CWN .
WELL. UNKNOWN: WELL NAME
~Parameter Information Block
#MNEM.UNIT Value Description
#--------- ----------- ---------------------------
~Curve Information Block
#MNEM.UNIT API CODE Curve Description
#--------- ----------- ---------------------------
wwww.M 00 000 000 000: xxxxxxxxxxxxxx
AX.MM 00 000 000 000: xxxxxxxxxxxxxx
xxxx . 00 000 000 000: xxxxxxeeeeeeee
xtyy .GAPI 00 000 000 000: gtgtgvgvhjuipi
wwvv . 00 000 000 000:
~A
-0.9144
-999.2500 -999.2500 45.9415 -999.2500
-0.8382
-999.2500 -999.2500 55.3639 -999.2500
-0.7620
-999.2500 -999.2500 64.7864 -999.2500
-0.6858
-999.2500 -999.2500 74.2088 -999.2500
-0.6096
-999.2500 -999.2500 83.6312 -999.2500
-0.5334
-999.2500 -999.2500 93.0536 -999.2500
-0.4572
-999.2500 -999.2500 90.0697 -999.2500
-0.3810
-999.2500 -999.2500 79.5008 -999.2500
-0.3048
-999.2500 -999.2500 68.9319 -999.2500
-0.2286
-999.2500 -999.2500 64.3118 -999.2500
-0.1524
-999.2500 -999.2500 64.3118 -999.2500
-0.0762
-999.2500 -999.2500 64.3118 -999.2500
0.0000
-999.2500 -999.2500 64.3118 -999.2500
0.0762
-999.2500 -999.2500 64.3118 -999.2500
0.1524
-999.2500 -999.2500 65.0113 -999.2500
0.2286
--------------------------------------------------------
Wanted to count the lines between ~Curve Information Block and ~A
and i need a count of no of lines between these two.
I need an output file with the filename and the no of lines present between these 2 pattern.
The no of lines between these patterns can vary.........
I need to do this for morethan 1000 files............
I belive an awk code or Shell script can help me in this..........

Thanks in advance..........
# 2  
Old 06-27-2008
MySQL

this can help you:

echo "" >OutputFile

for file in UrDirPath/*
do

NOL=`awk '/~Curve/,/~A/ {print}' InputFile|wc -l`
echo "$file $NOL" >>OutputFile
done

Last edited by gaurav123; 06-27-2008 at 08:26 AM..
# 3  
Old 06-27-2008
Code:
root@isau02:/data/tmp/testfeld> cat weekend_is_close.ksh
awk -v filename=$1 '
        BEGIN{
                i=0
        }
        /^~Curve Information Block/ {
                getline
                while ( ! /^~A/ ) {
                        #print $0
                        i++
                        getline
                }
        }
        END{
                print filename"_"i
        }
' $1
root@isau02:/data/tmp/testfeld> ./wee*.ksh infile
infile_7

If you want the filename and the line number added continously to a single file, just redirect the output with >> into a file and change the behaviour for the parameter.
# 4  
Old 06-27-2008
Another one:

Code:
awk '/^~Curve/ { close(f); c = 1 } 
/^~A$/ { print FILENAME, c - 2 > (f = FILENAME "_done") }
c { c++ }' filename1 [filename2 ... filenamen]

Use nawk or /usr/xpg4/bin/awk on Solaris.

I'm not sure if you want the number of lines as a filename or a file content.

EDIT:
Just realized that probably you want something like this:

Code:
awk '/^~Curve/ { c = 1 } 
/^~A$/ { print FILENAME, c - 2 > "all_count" }
c { c++ }' filename1 [filename2 ... filenamen]


Last edited by radoulov; 06-27-2008 at 08:55 AM..
# 5  
Old 07-15-2008
Hi,
Thankyou............
It Worked fine...............

Thank you very much for this tip...........

Santy
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Counting lines in a file using awk

I want to count lines of a file using AWK (only) and not in the END part like this awk 'END{print FNR}' because I want to use it. Does anyone know of a way? Thanks a lot. (7 Replies)
Discussion started by: guitarist684
7 Replies

2. Shell Programming and Scripting

Counting a string between 2 strings...

I have been working on this for a little while and have been unable to come to a solution. Any help would be appreciated. I am working on a UNIX workstation and have a 30-40 meg text file that I am working with. In my real file there is hundreds of Jobs. Example of input file; misc logging data... (1 Reply)
Discussion started by: ny_evan
1 Replies

3. Shell Programming and Scripting

Delete lines in file containing duplicate strings, keeping longer strings

The question is not as simple as the title... I have a file, it looks like this <string name="string1">RZ-LED</string> <string name="string2">2.0</string> <string name="string2">Version 2.0</string> <string name="string3">BP</string> I would like to check for duplicate entries of... (11 Replies)
Discussion started by: raidzero
11 Replies

4. UNIX for Dummies Questions & Answers

Counting no. of lines and printing it at the start of the file

Dear users, I need to count the number of lines in a simple text file and print the number on the first line of that same file. I know I can count the lines using wc -l file.txt this gives for example 100 file.txt I need the number 100 to be printed at the very top of file.txt... (2 Replies)
Discussion started by: jenjen_mt
2 Replies

5. Shell Programming and Scripting

Counting lines in each block file

hello im new here so i want to say hi everybody :) i have to write a script and im newbie :/ i hope that in this forum are many ppl who knows subject :) i have hundrets folders. in each folder is a file name trace.txt. each trace.txt has a lot of tracert's results separates with "-----" it... (6 Replies)
Discussion started by: michael8484
6 Replies

6. Shell Programming and Scripting

Adding strings to lines in a file

Hi all, I have a positional text file that comes from some source application. Before it is processed by destination application I have to add some header (suffix) to every record(line) in the file. e.g. Actual File ............... AccountDetails AcNO Name Amount 1234 John 26578 5678... (3 Replies)
Discussion started by: sharath160
3 Replies

7. Shell Programming and Scripting

Counting similar lines from file UNIX

I have a file which contains data as below: nbk1j7o pageName=/jsp/RMBS/RMBSHome.jsf nbk1j7o pageName=/jsp/RMBS/RMBSHome.jsf nbk1j7o pageName=/jsp/RMBS/RMBSHome.jsf nbk1j7o pageName=/jsp/RMBS/RMBSHome.jsf nbk1j7o pageName=/jsp/common/index.jsf nbk1j7o pageName=/jsp/common/index.jsf nbk1wqe... (6 Replies)
Discussion started by: mohsin.quazi
6 Replies

8. Shell Programming and Scripting

Extracting the lines between 2 strings of a file

Hi, I have a sql file and i need to extract the table names used in the sql file using a unix script. If i can extract the lines between the keywords 'FROM' and 'WHERE' in the file, my job is done. can somebody tell me how to do this using a shell script. If u can just let me know, how to... (2 Replies)
Discussion started by: babloo
2 Replies

9. UNIX for Dummies Questions & Answers

Counting occurences of different strings in a file

Hi, i'd like to know if the following is possible with a shell script, and can't find the answer in the search. Suppose i have a logfile build like this: # 8 :riuyzp1028 # 38 : riuyzp1028 # 25 : riuyvzp1032 # 30 : nlkljpa0202 # 1 : nlklja0205 # 38 : riuyzp1028 # 25 :... (4 Replies)
Discussion started by: Freerider
4 Replies

10. UNIX for Dummies Questions & Answers

Counting The Number Of Duplicate Lines In a File

Hello. First time poster here. I have a huge file of IP numbers. I am trying to output only the class b of the IPs and rank them by most common and output the total # of duplicate class b's before the class b. An example is below: 12.107.1.1 12.107.9.54 12.108.3.89 12.109.109.4 12.109.6.3 ... (2 Replies)
Discussion started by: crunchtime
2 Replies
Login or Register to Ask a Question