Sed scripting "how to replace value for only last part of a pattern "
I am new to sed and i am trying to make some script for remediation purpose using it.
All i want is to replace some part of pattern.
$1=" alok 10"
i want to change 10 with any number/string so that result comes as "alok 20". Is it possible with sed ?
I am looking for code some thing related as :
echo "alok 10" |sed -ie "s/$1/$1 10/g
I know the above is wrong , its just for your reference.
Also, while replying kindly explain wherever is required.
I am sucked, waiting for your reply..
I do not understand what you are trying to do.
In your example, you first set a variable equal to "alok 10". Your SED code is perfectly valid, and will give you: "alok 10 10"
Note: don't use the -i flag unless you are operating on a file and want to edit it "in place". You also do not need the -e flag.
sorry for that i was not clear enough in my last post!!
Actually I am not sure about the value of "alok ", it may be 10 or may be 100 , all i am trying to do is ,
i want to replace some parameter in system files , take an example of sshd.conf.
i wan to search parameter "PermitrootLoging Yes" (default setting in sshd.conf) and replace it with "PermitrootLogin No."
Now as per the above example given by you, there can be n number of "Yes" in that file. and I can't change all yes to no.
So i want a solution to replace pattern based on position with sed.
Hope now you can understand me..
Thanks for your time..
I think this is what you are saying:
"if 'pattern' is found, then replace 'word' with 'newword' "
For this, you can use the SED address feature----Using the above definition, it would be:
sed '/pattern/s/word/newword/' filename > newfilename
Here is a really good tutorial on SED: http://www.grymoire.com/Unix/Sed.html
|All times are GMT -5. The time now is 12:58 PM.|