簡體   English   中英

僅在匹配的字符串行中替換文件中的字符

[英]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 - 替換該行上的所有$字符。

請參閱在線sed演示

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM