目前我正在使用来自 shelljs 的 sed。但是,它只替换第一个匹配项,并且必须重新运行以替换文件中的每个匹配项。这是我正在使用的行:
shell.sed '-i', '{mountPoint}', mountPoint, /tmp/somefile
有没有办法让它与 shelljs 一起工作,或者其他一些简单的方法来执行搜索和替换?
谢谢
目前我正在使用来自 shelljs 的 sed。但是,它只替换第一个匹配项,并且必须重新运行以替换文件中的每个匹配项。这是我正在使用的行:
shell.sed '-i', '{mountPoint}', mountPoint, /tmp/somefile
有没有办法让它与 shelljs 一起工作,或者其他一些简单的方法来执行搜索和替换?
谢谢
在您当前的 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
您是否尝试过在替换模式中使用 g ? http://www.grymoire.com/Unix/Sed.html#uh-6