update - Now that I think about some edge cases like apostrophes and hyphens I would change line tomy $n = 3; my $newword = NEW; my $n_minus_one = $n-1; while (<DATA>) { s/((?:\w+\s+){$n_minus_one})(\w+)/$1$newword/; print; } __DATA__ hi there everyone I am looking to substitute lots of words for new ones, but only the third word per line on each line! one one two one two three one two three four __OUTPUT__ hi there NEW I am looking to substitute lots of NEW for new ones, but only the third word per NEW on each line! one one two one two NEW one two NEW four
tos/((?:\w+\s+){$n_minus_one})(\w+)/$1$newword/;
s/((?:[\w'\-]+[^\w'\-]+){$n_minus_one})(\w+)/$1$newword/;
--
flounder
In reply to Re: need help: substitute n-th word in a line
by flounder99
in thread need help: substitute n-th word in a line
by star7
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |