![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Getting the lines between last occurrence of two patterns | rvz | Shell Programming and Scripting | 8 | 08-08-2008 02:32 PM |
| SED replace string by occurrence | uttamhoode | Shell Programming and Scripting | 4 | 03-05-2008 02:04 AM |
| awk + last occurrence | agibbs | UNIX for Dummies Questions & Answers | 2 | 10-06-2007 12:32 PM |
| Search and replace to first occurrence of string | gilmord | UNIX for Dummies Questions & Answers | 7 | 05-03-2006 04:43 AM |
| Grep for the same occurrence or maybe Sed | hcclnoodles | Shell Programming and Scripting | 4 | 09-11-2002 09:25 PM |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
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 field). TIA!!!!!! |
| Forum Sponsor | ||
|
|
|
#2
|
|||
|
|||
|
Put this code in mouse.awk
Code:
/mouse/{
mcount++
if(mcount == 2){
sub("mouse","mouse2",$0)
}
}
{print}
|
|
#3
|
||||
|
||||
|
So what happens if the file has this:
cat mouse mouse |
|
#4
|
|||
|
|||
|
the poster said they wanted the second occurrence. this does that. if you need all occurrences of mouse changed on the line where the second occurrence is found then change sub to gsub.
|
|
#5
|
||||
|
||||
|
I think I was not clear. I meant, for "cat mouse mouse", the second "mouse" on this line also counts as a second ocurrance. So shouldn't that change to "cat mouse mouse2"?
|
|
#6
|
||||
|
||||
|
This'll take care of it:
Code:
awk -f mouse.awk RS=" " ORS=" " animals.txt Code:
$ cat animals.txt cat dog pig deer elk rabbit mouse mouse mouse $ awk -f mouse.awk RS=" " ORS=" " animals.txt cat dog pig deer elk rabbit mouse mouse2 mouse |
||||
| Google The UNIX and Linux Forums |