gred with sed inplace

时间:2016-08-22 12:01:58

标签: sed grep

我想将set_input中的clk替换为clk_new。

在终端上它工作正常:

grep set_input abc.tcl | grep -w clk | sed 's/clk/clk_new/g'

但是一旦我使用inplace,保存更改文件就会在file.i.e

中更改
grep set_input abc.tcl | grep -w clk | sed -i 's/clk/clk_new/g' abc.tcl
set_input -clock clk_new -delay 0.2
set_input -clock clk_new -delay 0.5
set_output -clock clk_new -delay 0.2 

2 个答案:

答案 0 :(得分:1)

任何时候你发现自己在追逐greps + seds你都有错误的做法。在这种情况下,你所需要的只是GNU sed(由于RequireQualifiedAccess而你已经在使用{}}用于字边界:

-i

答案 1 :(得分:0)

-i选项指定要就地编辑文件用于文件上的替换语句。

您不需要grep语句。

试试这段代码:

$ sed -i 's/clk/clk_new/g' abc.tcl