如何解决仅在匹配的字符串行中替换文件中的字符
我试图在特定字符串匹配的一行中替换文件中的“$”字符。 就我而言,我有一个如下所示的文件
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
- 替换该行的所有$
字符。
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。