sed替换但不在特定的$ delimiters之间

时间:2015-09-10 06:05:24

标签: regex sed

我正在使用SED for windows。

我想对所有字符_的实例进行搜索和替换,将其全部替换为字符-

但是我想要排除两个_ $

之间的(i.e. in between two $ delimiters)个实例

所以对于示例字符串

123_abc$fred_1$abc_123 

我想用_替换两个外-,而不是$

中的那个替换c:\ echo 123_abc$fred_1$abc_123 | sed /(\$*\$)/!s/_/-/g

我试过了:

from("direct:start")
  .pollEnrich("file:inbox?fileName=data.txt")
  .to("direct:result");

但这不起作用。

1 个答案:

答案 0 :(得分:-1)

这应该适用于提供的样本,如果你有更多的下划线,像awk这样的另一个工具会更合适。

sed -r 's/([^$]+)\$([^_]+)_([^$]+)\$([^$]+)/\1$\2-\3$\4/'