Sponsored Content
Top Forums Shell Programming and Scripting Substitute first occurrence of keyword if occurrence between two other keywords Post 302962346 by M Gruenstaeudl on Saturday 12th of December 2015 01:44:10 PM
Old 12-12-2015
Substitute first occurrence of keyword if occurrence between two other keywords

Assume a string that contains one or multiple occurrences of three different keywords (abbreviated as "kw"). I would like to replace kw2 with some other string, say "qux". Specifically, I would like to replace that occurrence of kw2 that is the first one that is preceded by kw1 somewhere in the string (i.e., kw1 not necessarily adjacent to kw2) and followed by kw3 (i.e., kw2 not necessarily adjacent to kw3).

Examples:
Code:
> echo "foo kw1 bar kw2 baz kw3 kw2 baz kw3" | sed ...
# Desired output: foo kw1 bar qux baz kw3 kw2 baz kw3

Code:
> echo "foo kw2 bar kw1 bar kw2 baz kw3" | sed ...
# Desired output: foo kw2 bar kw1 bar qux baz kw3

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

awk + last occurrence

Hi, I'm attempting to search, using awk, a pattern range in a file. Something like: >awk '/first bit of text.../,/...last bit of text/' file Is it possible to print only the last (or first) occurrence of the pattern range this way? Thanks for any suggestions. Al (2 Replies)
Discussion started by: agibbs
2 Replies

2. Shell Programming and Scripting

Replace second occurrence only

HPUX /bin/sh (posix) I have a file as such cat dog mouse deer elk rabbit mouse rat pig I would like to replace the second occurrence of mouse in this file with mouse2. The rest of the file has to stay exactly as is. I'm not sure exactly where mouse might be (could be first,second,third... (5 Replies)
Discussion started by: lyoncc
5 Replies

3. Shell Programming and Scripting

Using sed to substitute first occurrence

I am trying to get rid of some ending tags but I run into some problems. Ex. How are you?</EndTag><Begin>It is fine.</Begin><New> Just about I am trying to get rid of the ending tags, starts with </ and ending with >. (which is </EndTag> and </Begin>) I tried the following sed... (2 Replies)
Discussion started by: quixoticking11
2 Replies

4. Shell Programming and Scripting

count a occurrence

I am looking to get a output of "2 apple found" from the awk command below. black:34104 tomonorisoejima$ cat tomo apple apple black:34104 tomonorisoejima$ awk '/apple/ {count++}END{print count " apple found"}' tomo 1 apple found black:34104 tomonorisoejima$ (5 Replies)
Discussion started by: soemac
5 Replies

5. UNIX for Dummies Questions & Answers

Breaking up at the second occurrence

hi, My input is: 123 1234|123|123|123 123|123|456 123|123|12 12 Expected output is: 123 1234|123 123|123 123|123 456 123|123 12 (1 Reply)
Discussion started by: pandeesh
1 Replies

6. Shell Programming and Scripting

Grabbing Keywords Below a Searched Keyword

Hello, I have a text file like the one found below and wouild like the grab the certain lines after the searched phrase. For example, I'd like to look up "Hello" and once I find the "Hello" section, grab the lines that contain "Text" and stops at the next section. Input.txt Example Hello... (8 Replies)
Discussion started by: jl487
8 Replies

7. Shell Programming and Scripting

number of occurrence

: i need a bash script to convert the displayed output 12 14 15 12 15 13 to 12 * 2 ,13 * 1,14*1,15*1 Thanks, nevil (2 Replies)
Discussion started by: nevil
2 Replies

8. UNIX for Dummies Questions & Answers

Sed, last occurrence

How to find last occurrence of a keyword in a file using sed. (4 Replies)
Discussion started by: nexional
4 Replies

9. Shell Programming and Scripting

Compare value in the last occurrence for each id

Dear Gents, Please can you help me. I have a file with multiple values called ID ID ( columns 11-24) INDEX ( column 26 ) STATUS ( columns 91-92) The ID can be repetead many times to diference each one there is a value called INDEX which difference each time, it increase if the ID is... (10 Replies)
Discussion started by: jiam912
10 Replies

10. Shell Programming and Scripting

sed print from last occurrence match until the end of last occurrence match

Hi, i have file file.txt with data like: START 03:11:30 a 03:11:40 b END START 03:13:30 eee 03:13:35 fff END jjjjjjjjjjjjjjjjjjjjj START 03:14:30 eee 03:15:30 fff END ggggggggggg iiiiiiiiiiiiiiiiiiiiiiiii I want the below output START (13 Replies)
Discussion started by: Jyotshna
13 Replies
Devel::Dwarn(3pm)					User Contributed Perl Documentation					 Devel::Dwarn(3pm)

NAME
Devel::Dwarn - return Dwarn @return_value SYNOPSIS
use Devel::Dwarn; return Dwarn some_call(...) is equivalent to: use Data::Dumper::Concise; if (wantarray) { my @return = some_call(...); warn Dumper(@return); return @return; } else { my $return = some_call(...); warn Dumper($return); return $return; } but shorter. If you need to force scalar context on the value, use Devel::Dwarn; return DwarnS some_call(...) is equivalent to: use Data::Dumper::Concise; my $return = some_call(...); warn Dumper($return); return $return; If you need to force list context on the value, use Devel::Dwarn; return DwarnL some_call(...) is equivalent to: use Data::Dumper::Concise; my @return = some_call(...); warn Dumper(@return); return @return; If you want to label your output, try DwarnN use Devel::Dwarn; return DwarnN $foo is equivalent to: use Data::Dumper::Concise; my @return = some_call(...); warn '$foo => ' . Dumper(@return); return @return; If you want to output a reference returned by a method easily, try $Dwarn $foo->bar->{baz}->$Dwarn is equivalent to: my $return = $foo->bar->{baz}; warn Dumper($return); return $return; If you want to immediately die after outputting the data structure, every Dwarn subroutine has a paired Ddie version, so just replace the warn with die. For example: DdieL 'foo', { bar => 'baz' }; TIPS AND TRICKS
global usage Instead of always just doing: use Devel::Dwarn; Dwarn ... We tend to do: perl -MDevel::Dwarn foo.pl (and then in the perl code:) ::Dwarn ... That way, if you leave them in and run without the "use Devel::Dwarn" the program will fail to compile and you are less likely to check it in by accident. Furthmore it allows that much less friction to add debug messages. method chaining One trick which is useful when doing method chaining is the following: my $foo = Bar->new; $foo->bar->baz->Devel::Dwarn::DwarnS->biff; which is the same as: my $foo = Bar->new; (DwarnS $foo->bar->baz)->biff; SEE ALSO
This module is really just a shortcut for Data::Dumper::Concise::Sugar, check it out for more complete documentation. perl v5.10.1 2011-01-20 Devel::Dwarn(3pm)
All times are GMT -4. The time now is 07:18 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy