2

目前我正在使用来自 shelljs 的 sed。但是,它只替换第一个匹配项,并且必须重新运行以替换文件中的每个匹配项。这是我正在使用的行:
shell.sed '-i', '{mountPoint}', mountPoint, /tmp/somefile

有没有办法让它与 shelljs 一起工作,或者其他一些简单的方法来执行搜索和替换?

谢谢

4

2 回答 2

4

在您当前的 SED 命令中,您有两个不同字符串的输入和输出。另一种安排方式允许您将匹配和替换模式放在同一个字符串中,如下所示

s/{(.*)}/$1/g

分解如下

s/    #this is a search and replace
\{    #bracket is escaped since it means something special in REGEX language
(     #keep what is inside the parenthesis for later (kept in $1)
.*    #match anything 
)     
\}    #other bracket you don't want to keep
/     #indicates you are now working on the replace pattern
$1    # what was captured in previous parenthesis
/     #end replace pattern
g     #Global replace
于 2013-06-17T19:06:03.427 回答
2

您是否尝试过在替换模式中使用 g ? http://www.grymoire.com/Unix/Sed.html#uh-6

于 2013-06-17T19:05:22.590 回答