仅针对特定字符串shell脚本

时间:2016-11-16 13:54:56

标签: bash shell replace scripting

我正在尝试更换括号(在代码文件中的| - >字符串之前。还有其他的(括号也在同一行中,但我想替换在此字符串之前的那个| - &gt ;在每一行。 例如,在下面的行中,我想要替换此行的第二个括号,这是| - >之前的开始括号。使用shell脚本命令的字符串。

property((req1 == 0)| - >(gnt1 == 0));

1 个答案:

答案 0 :(得分:0)

您可以使用sed

执行此操作
echo 'property ( ( req1 == 0 ) |-> ( gnt1 == 0 ) );' | sed 's/\(([^(]*|->\)/! \1/'

打印:

property ( ! ( req1 == 0 ) |-> ( gnt1 == 0 ) );

它的工作方式是查找(s/\(之后的那个),但只有在(以外的其他内容之后(' s [^(]*然后|->