Reputation: 216
I am trying to replace "$" char from file in a single line where particular strings matched . In my case I am having a file like below
WHENEVER SQLERROR EXIT 1 ROLLBACK;
WHENEVER SQLERROR EXIT 1 ROLLBACK;
SET DEFINE OFF
DECLARE
g_GITvision varchar2(100) := '$Testversion: 1234 $';
sql code
sql code
I want to remove "$" from only line which matched with starting of "g_GITvision". tried so far
sed -e 's/\(\^g_GITvision\)\$/\\' file
Any help would be apriciated.
Upvotes: 1
Views: 30
Reputation: 627469
You can use
sed '/^g_GITvision/s/\$//g' file > newfile
Here,
/^g_GITvision/
- finds a line starting with g_GITvision
s/\$//g
- replaces all $
chars on that line.See an online sed
demo:
s='WHENEVER SQLERROR EXIT 1 ROLLBACK;
WHENEVER SQLERROR EXIT 1 ROLLBACK;
SET DEFINE OFF
DECLARE
g_GITvision varchar2(100) := '"'"'$Testversion: 1234 $'"'"';
sql code
sql code'
sed '/^g_GITvision/s/\$//g' <<< "$s"
Output:
WHENEVER SQLERROR EXIT 1 ROLLBACK;
WHENEVER SQLERROR EXIT 1 ROLLBACK;
SET DEFINE OFF
DECLARE
g_GITvision varchar2(100) := 'Testversion: 1234 ';
sql code
sql code
Upvotes: 2