BASH:使用sed替换字符串中的组

时间:2017-06-29 15:13:39

标签: regex bash sed

Contents包含从文件中读取的字符串。我想要做的是用组和换行符替换捕获组。但我不知道如何。

这有效

map.on('moveend', function() {
map.getBounds()
//erase the features you had on the map
//Then load on the map only the features with coordinates inside the Bounging Box. 
}

但这不是

contents=$(echo $contents | sed -e 's|/$(#.*)\n||g')

这也不是

contents=$(echo $contents | sed -e 's|/$(#.*)\n|\1\n|g')
ERROR: sed: -e expression #1, char 18: invalid reference \1 on `s' command's RHS

1 个答案:

答案 0 :(得分:0)

如果内容是多行$content必须在双引号之间以避免拆分:$在正则表达式中具有特殊含义它是行结束锚,必须进行转义。必须对组括号进行转义(-r扩展正则表达式除外)。另外\n不匹配$可以替代使用。

content=$(echo "$content"|sed -e 's|/\$\(#.*\)$|\1|g')