仅在匹配的字符串行中替换文件中的字符
replace character from file in matched strings lines only
我正在尝试在匹配特定字符串的单行中替换文件中的“$”字符。
在我的例子中,我有一个如下所示的文件
WHENEVER SQLERROR EXIT 1 ROLLBACK;
WHENEVER SQLERROR EXIT 1 ROLLBACK;
SET DEFINE OFF
DECLARE
g_GITvision varchar2(100) := '$Testversion: 1234 $';
sql code
sql code
我只想从与“g_GITvision”开头匹配的行中删除“$”。
目前已尝试
sed -e 's/\(\^g_GITvision\)$/\' file
如有任何帮助,我们将不胜感激。
您可以使用
sed '/^g_GITvision/s/$//g' file > newfile
这里,
/^g_GITvision/
- 查找以 g_GITvision
开头的行
s/$//g
- 替换该行上的所有 $
个字符。
看到 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"
输出:
WHENEVER SQLERROR EXIT 1 ROLLBACK;
WHENEVER SQLERROR EXIT 1 ROLLBACK;
SET DEFINE OFF
DECLARE
g_GITvision varchar2(100) := 'Testversion: 1234 ';
sql code
sql code
我正在尝试在匹配特定字符串的单行中替换文件中的“$”字符。 在我的例子中,我有一个如下所示的文件
WHENEVER SQLERROR EXIT 1 ROLLBACK;
WHENEVER SQLERROR EXIT 1 ROLLBACK;
SET DEFINE OFF
DECLARE
g_GITvision varchar2(100) := '$Testversion: 1234 $';
sql code
sql code
我只想从与“g_GITvision”开头匹配的行中删除“$”。 目前已尝试
sed -e 's/\(\^g_GITvision\)$/\' file
如有任何帮助,我们将不胜感激。
您可以使用
sed '/^g_GITvision/s/$//g' file > newfile
这里,
/^g_GITvision/
- 查找以g_GITvision
开头的行
s/$//g
- 替换该行上的所有$
个字符。
看到 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"
输出:
WHENEVER SQLERROR EXIT 1 ROLLBACK;
WHENEVER SQLERROR EXIT 1 ROLLBACK;
SET DEFINE OFF
DECLARE
g_GITvision varchar2(100) := 'Testversion: 1234 ';
sql code
sql code