Sponsored Content
Top Forums Shell Programming and Scripting Better and efficient way to reverse search a file for first matched line number. Post 302562462 by alister on Friday 7th of October 2011 02:09:38 AM
Old 10-07-2011
Quote:
Originally Posted by kchinnam
But it feels like I am using too many commands. Is there a better more efficiant way to do this on Unix?

...<snip>...

Code:
 
vStart='Started'; myLog=abc.log
lineNum=`/usr/xpg4/bin/tail -r $myLog | cat -n | sed -n "/$vStart/{p;q;}" | awk '{print $1}'`


You don't need to use cat or awk. Just use sed's = command (which prints the current line number).
Code:
tail -r file | sed -n '/pat/{=;q;}'

If the reason you're asking about efficiency is because it's a large file, then this tail|sed approach is much better than any awk or grep solution. Why? The other suggestions must all read the file in its entirety. tail -r will seek to the end of the file and start reading there. As soon as sed finds a matching line it will exit. This will terminate tail (via SIGPIPE).

Regards,
Alister
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

search for the matched pattern by tracing back from the line

Hi, I want to grep the line which has 'data11'.then from that line, i need to trace back and find out the immediate line which has the same timestamp of that grepped line. for eg: log file: ----------- Process - data Process - datavalue - 2345 Process - data Process - data Process... (9 Replies)
Discussion started by: Sharmila_P
9 Replies

2. Shell Programming and Scripting

reverse search a text file from a specified line

Hello All, I have a following task that I need to accomplish through a script or program and I am looking for some help as I have exhausted my ideas. 1. given: a text file with thousands of lines 2. find: pattern A in file and get line number ( grep -n works) 3. find: the first occurence of... (14 Replies)
Discussion started by: PacificWonder
14 Replies

3. UNIX for Dummies Questions & Answers

How to read contents of a file from a given line number upto line number again specified by user

Hello Everyone. I am trying to display contains of a file from a specific line to a specific line(let say, from line number 3 to line number 5). For this I got the shell script as shown below: if ; then if ; then tail +$1 $3 | head -n $2 else ... (5 Replies)
Discussion started by: grc
5 Replies

4. Shell Programming and Scripting

Match a line in File 1 with Column in File 2 and print whole line in file 2 when matched

Hi Experts, I am very new to scripting and have a prb since few days and it is urgent to solve so much appreciated if u help me. i have 2 files file1.txt 9647810043118 9647810043126 9647810043155 9647810043161 9647810043166 9647810043185 9647810043200 9647810043203 9647810043250... (22 Replies)
Discussion started by: mustafa.abdulsa
22 Replies

5. Shell Programming and Scripting

how do I break line in a file when a pattern is matched ?

Hi All, I am stuck for quite sometime now. Below is a line in my file - GS|ED|001075|001081|20110626|1806|100803|X|004010ST|130|100803001 This line occurs only once and it is the second line. I have to break this line into two lines from ST (bold) such that it looks like -... (5 Replies)
Discussion started by: ihussain
5 Replies

6. Shell Programming and Scripting

search a string in a particular column of file and return the line number of the line

Hi All, Can you please guide me to search a string in a particular column of file and return the line number of the line where it was found using awk. As an example : abc.txt 7000,john,2,1,0,1,6 7001,elen,2,2,0,1,7 7002,sami,2,3,0,1,6 7003,mike,1,4,0,2,1 8001,nike,1,5,0,1,8... (3 Replies)
Discussion started by: arunshankar.c
3 Replies

7. Shell Programming and Scripting

Need an efficient way to search for a tag in an xml file having millions of rows

Hi, I have an XML file with around 1 billion rows in it and i am trying to find the number of times a particular tag occurs in it. The solution i am using works but takes a lot of time (~1 hr) .Please help me with an efficient way to do this. Lets say the input file is <Root> ... (13 Replies)
Discussion started by: Sheel
13 Replies

8. Shell Programming and Scripting

Perl - use search keywords from array and search a file and print 3rd field when matched

Hi , I have been trying to write a perl script to do this job. But i am not able to achieve the desired result. Below is my code. my $current_value=12345; my @users=("bob","ben","tom","harry"); open DBLIST,"<","/var/tmp/DBinfo"; my @input = <DBLIST>; foreach (@users) { my... (11 Replies)
Discussion started by: chidori
11 Replies

9. Shell Programming and Scripting

Efficient way to search array in text file by awk

I have one array SPLNO with approx 10k numbers.Now i want to search the subscriber number from MDN.TXT file (containing approx 1.5 lac record)from the array.if subscriber number found in array it will perform below operation.my issue is that it's taking more time because for one number it's search... (6 Replies)
Discussion started by: siramitsharma
6 Replies

10. UNIX for Beginners Questions & Answers

Search a string inside a pattern matched block of a file

How to grep for searching a string within a begin and end pattern of a file. Sent from my Redmi 3S using Tapatalk (8 Replies)
Discussion started by: Baishali
8 Replies
std::sub_match< _BiIter >(3cxx) 										   std::sub_match< _BiIter >(3cxx)

NAME
std::sub_match< _BiIter > - SYNOPSIS
Inherits std::pair< _BiIter, _BiIter >. Public Types typedef iterator_traits < _BiIter >::difference_type difference_type" typedef _BiIter first_type typedef _BiIter iterator typedef _BiIter second_type typedef std::basic_string < value_type > string_type" typedef iterator_traits < _BiIter >::value_type value_type" Public Member Functions int compare (const sub_match &__s) const int compare (const string_type &__s) const int compare (const value_type *__s) const difference_type length () const operator string_type () const string_type str () const void swap (pair &__p) Public Attributes _BiIter first bool matched _BiIter second Detailed Description template<typename _BiIter>class std::sub_match< _BiIter > A sequence of characters matched by a particular marked sub-expression. An object of this class is essentially a pair of iterators marking a matched subexpression within a regular expression pattern match. Such objects can be converted to and compared with std::basic_string objects of a similar base character type as the pattern matched by the regular expression. The iterators that make up the pair are the usual half-open interval referencing the actual original pattern matched. Definition at line 757 of file regex.h. Member Typedef Documentation typedef _BiIter std::pair< _BiIter , _BiIter >::second_type [inherited] first_type is the first bound type Definition at line 90 of file stl_pair.h. Member Function Documentation template<typename _BiIter> int std::sub_match< _BiIter >::compare (const sub_match< _BiIter > &__s) const [inline] Compares this and another matched sequence. Parameters: s Another matched sequence to compare to this one. Return values: <0 this matched sequence will collate before s. =0 this matched sequence is equivalent to s. <0 this matched sequence will collate after s. Definition at line 818 of file regex.h. Referenced by std::operator!=(), std::operator<(), std::operator<=(), std::operator==(), std::operator>(), and std::operator>=(). template<typename _BiIter> int std::sub_match< _BiIter >::compare (const string_type &__s) const [inline] Compares this sub_match to a string. Parameters: s A string to compare to this sub_match. Return values: <0 this matched sequence will collate before s. =0 this matched sequence is equivalent to s. <0 this matched sequence will collate after s. Definition at line 831 of file regex.h. template<typename _BiIter> int std::sub_match< _BiIter >::compare (const value_type *__s) const [inline] Compares this sub_match to a C-style string. Parameters: s A C-style string to compare to this sub_match. Return values: <0 this matched sequence will collate before s. =0 this matched sequence is equivalent to s. <0 this matched sequence will collate after s. Definition at line 844 of file regex.h. template<typename _BiIter> difference_type std::sub_match< _BiIter >::length () const [inline] Gets the length of the matching sequence. Definition at line 775 of file regex.h. template<typename _BiIter> std::sub_match< _BiIter >::operator string_type () const [inline] Gets the matching sequence as a string. Returns: the matching sequence as a string. This is the implicit conversion operator. It is identical to the str() member function except that it will want to pop up in unexpected places and cause a great deal of confusion and cursing from the unwary. Definition at line 788 of file regex.h. template<typename _BiIter> string_type std::sub_match< _BiIter >::str () const [inline] Gets the matching sequence as a string. Returns: the matching sequence as a string. Definition at line 801 of file regex.h. Referenced by std::sub_match< _Bi_iter >::compare(), and std::operator<<(). Member Data Documentation _BiIter std::pair< _BiIter , _BiIter >::first [inherited] second_type is the second bound type Definition at line 92 of file stl_pair.h. Referenced by std::sub_match< _Bi_iter >::length(), std::sub_match< _Bi_iter >::operator string_type(), and std::sub_match< _Bi_iter >::str(). _BiIter std::pair< _BiIter , _BiIter >::second [inherited] first is a copy of the first object Definition at line 93 of file stl_pair.h. Referenced by std::sub_match< _Bi_iter >::length(), std::sub_match< _Bi_iter >::operator string_type(), and std::sub_match< _Bi_iter >::str(). Author Generated automatically by Doxygen for libstdc++ from the source code. libstdc++ Tue Nov 27 2012 std::sub_match< _BiIter >(3cxx)
All times are GMT -4. The time now is 05:43 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy