Hi All
I am writing a script that will replace all instance of a particular
word another in a file
The only problem is that I want to match only whole words
eg If $str="the there thee that the";
I want to change to $str="abc there thee that abc";
$srcstr = 'the'
$dest = 'abc'
$str=~s/([^\w\_\-\.])\Q$srcstr\E([^\w\_\-\.])/$1$dest$2/g;
this doesnt seem to work
I will enclose my entire script here
#!/usr/bin/perl
#
# This will work as sedfiles diff being it replaces only whole words
# A word will mean only char seq containing \w \_ \- \.
# No Regex is allowed in srcstring
#
die "Usage $0 <srcstring> <deststring> <file1>..<file2>\n" unless (@ARGV
> 2 );
$srcstr = shift(@ARGV);
$deststr = shift(@ARGV);
{
local $^I = '~';
while (<>) {
# This does not work
s/([^\w\_\-\.])\Q$srcstr\E([^\w\_\-\.])/$1$deststr$2/g;
# This works but not what I need
#s/\Q$srcstr\E/$1$deststr$2/g;
print;
}
}
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]