Sponsored Content
Full Discussion: awk: last occurance
Top Forums Shell Programming and Scripting awk: last occurance Post 302101525 by vgersh99 on Tuesday 2nd of January 2007 04:27:58 PM
Old 01-02-2007
Quote:
Originally Posted by pondlife
Hi All,

I need to extract the last occurance of a pattern match. So far I've got the code below which extracts the first occurance. Any ideas how I can modify it so that it extracts the last?

Code:
BEGIN {}                        
{                               
   if (data[$2]++ == 0)         
      lines[++count] = $0       
}                               
END {                           
    for (i = 1; i <= count; i++)
        print lines[i]          
}

Thanks in advance,

p.
Code:
{  
   lines[$2] = $0                                 
}                               
END {                           
    for (i in lines)
        print lines[i]          
}

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Removing the last occurance of string

I have a small query. I have a file containing the following lines abcd<12></12>fdfgdf<12>sdfgfg<12> sdfsdf<12></12>ytunfg<12> hggfhf<12>rtysb<12>zdfgdfg<12> Now I wish to delete ONLY the last occurance of string <12> from every lines of code. That mease my final output will be like this:... (7 Replies)
Discussion started by: dkhanna01
7 Replies

2. Shell Programming and Scripting

awk array - first and last occurance

What I'm trying to do is, using awk, loading the log file into an array matching column 2, counting the match and finding the first occurance and last occurance of column 1 being it a date. 08052006:AAA 08052006:AAA 08052006:BBB 09052006:AAA 15052006:BBB 11052006:CCC 19052006:CCC... (5 Replies)
Discussion started by: ping
5 Replies

3. Shell Programming and Scripting

How to insert values in 1st occurance out of two occurance in a file

Hi I have a file which contains the following two lines which are same But I would like to insert the value=8.8.8.8 in the 1st occurance line and value=9.9.9.9 in the 2nd occurance line. <parameter name="TestIp1" value=""> <parameter name="TestIp1" value=""> Please suggest (1 Reply)
Discussion started by: madhusmita
1 Replies

4. Shell Programming and Scripting

Split on last occurance

I want to call a script like this: ./somescript some-thing.knows.what.ending Inside the script it needs to split at last .(period) so I can: a=some-thing.knows.what b=ending I know I can do it in perl but im still learing awk and sed. Thanks (3 Replies)
Discussion started by: Ikon
3 Replies

5. Shell Programming and Scripting

How can I match lines with just one occurance of a string in awk?

Hi, I'm trying to match records using awk which contain only one occurance of my string, I know how to match one or more (+) but matching only one is eluding me without developing some convoluted bit of code. I was hoping there would be some simple pattern matching thing similar to '+' but... (9 Replies)
Discussion started by: jonathanm
9 Replies

6. Shell Programming and Scripting

Count the Consecutive Occurance of "X" in awk

Hi All, I have a data as follow: 0 0 0 X X 0 X X X 0 X 0 0 X 0 0 (16 Replies)
Discussion started by: nica
16 Replies

7. Shell Programming and Scripting

First occurance

A PERL script that prints just the first occurrence of a string in a file and immediately exits (the string and the filename are the first and the second command line arguments; I used filehandle to open an input file). (1 Reply)
Discussion started by: aadi_uni
1 Replies

8. Shell Programming and Scripting

awk to replace second occurance

#original file . . ~ ~ Index=2 xxx replace #dont replace 1st occurance yyy Index=2 xxx replace #substitue replace with "REPLACE" yyy Index=2 xxx replace #substitue replace with "REPLACE" yyy Index=3 xxx replace (3 Replies)
Discussion started by: cjjoy
3 Replies

9. Shell Programming and Scripting

Trying to grep for '--' occurance

Hello Im trying to grep for a string in grub.conf . I've used the -F option since its a long string, but when i execute, i run into errors. Script and output below. GRUBPASSWD="password --md5 xyz" if grep -Fxq $GRUBPASSWD /etc/grub.conf then . . output: grep: unrecognized option... (5 Replies)
Discussion started by: bludhemn
5 Replies

10. UNIX for Beginners Questions & Answers

Extract only first occurance

Hi All, From the below file. I need to get only the first occurrence and print. I tried to do it in separate grep not coming as expected Original file 11001;1213;304;;;;;;;111020677.64;;;;;;;;;;;;;;;;;;;;;;;;;; 11001;1214;304;;;;;;;102376462.96;;;;;;;;;;;;;;;;;;;;;;;;;;... (5 Replies)
Discussion started by: arunkumar_mca
5 Replies
strextract(1int)														  strextract(1int)

Name
       strextract - batch string extraction

Syntax
       strextract [ -p patternfile ] [ -i ignorefile ] [ -d ] [ source-program...  ]

Description
       The  command extracts text strings from source programs.  This command also writes the string it extracts to a message text file.  The mes-
       sage text file contains the text for each message extracted from your input source program. The command names the file by appending .msg to
       the name of the input source program.

       In  the	source-program argument, you name one or more source programs from which you want messages extracted. The command does not extract
       messages from source programs included using the directive. Therefore, you might want a source program  and  all  the  source  programs	it
       includes on a single command line.

       You  can  create a patterns file (as specified by patternfile ) to control how the command extracts text. The patterns file is divided into
       several sections, each of which is identified by a keyword. The keyword must start at the beginning of a new line, and its first  character
       must  be  a dollar sign ($).  Following the identifier, you specify a number of patterns. Each pattern begins on a new line and follows the
       regular expression syntax you use in the routine. For more information on the patterns file, see the(5int) reference page.

       In addition to the patterns file, you can create a file that indicates strings that ignores.  Each line in this ignore file contains a sin-
       gle string to be ignored that follows the syntax of the routine.

       When you invoke the command, it reads the patterns file and the file that contains strings it ignores.  You can specify a patterns file and
       an ignore file on the command line.  Otherwise, the command matches all strings and uses the default patterns file.

       If finds strings which match the directive in the pattern file, it reports the strings to standard error (stderr.) but does not	write  the
       string to the message file.

       After running you can edit the message text file to remove text strings which do not need translating before running

       It is  recommended that you use command	as a visual front end to the command rather than running directly.

Options
       -i   Ignore  text  strings specified in ignorefile.  By default, the command searches for ignorefile in the current working directory, your
	    home directory, and

	    If you omit the option, recognizes all strings specified in the patterns file.

       -p   Use patternfile to match strings in the input source program. By default, the command searches for the pattern  file  in  the  current
	    working directory, your home directory, and finally

	    If you omit the option, the command uses a default patterns file that is stored in

       -d   Disables warnings of duplicate strings. If you omit the option, prints warnings of duplicate strings in your source program.

Restrictions
       Given the default pattern file, you cannot cause to ignore strings in comments that are longer than one line.

       You can specify only one rewrite string for all classes of pattern matches.

       The command does not extract strings from files include with directive. You must run the commands on these files separately.
       % strextract -p c_patterns prog.c prog2.c
       % vi prog.msg
       % strmerge -p c_patterns prog.c prog2.c
       % gencat prog.cat prog.msf prog2.msf
       % vi nl_prog.c
       % vi nl_prog2.c
       % cc nl_prog.c nl_prog2.c -li

       In this example, the command uses the file to determine which strings to match. The input source programs are named and

       If  you	need  to  remove  any  of the messages or extract one of the created strings, edit the resulting message file, Under no conditions
       should you add to this file. Doing so could result in unpredictable behavior.

       You issue the command to replace the extracted strings with calls to the message catalog.  In response to this command, creates the  source
       message catalogs, and and the output source programs, and

       You must edit and to include the appropriate and function calls.

       The command creates a message catalog and the command creates an executable program.

See Also
       intro(3int), gencat(1int), extract(1int), strmerge(1int), regex(3), catopen(3int), patterns(5int)
       Guide to Developing International Software

																  strextract(1int)
All times are GMT -4. The time now is 04:11 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy