English 中文(简体)
用GNU代号取代插图
原标题:Replace strings with text with GNU ed
  • 时间:2011-11-01 18:46:36
  •  标签:
  • gnu
  • ed

我想以包含每一种可能特性的体格取代%foo%(见档案测试)。 由于缺少身份限制,以下因素是不可能的(在讲卫生运动第4节中执行):

echo %foo% > test
replacement="//this//is//a//test"
ed -s test <<< "g/%foo%/s/%foo%/$replacement"

如何用每一种可能的案文取代<代码>%foo%?

最佳回答

有了<条码>r,就可以将案文从另一个档案中装载,因此以下是有效的解决办法:

  • store replacement to another file
  • open file with ed
  • move pointer to location
  • delete line (fake replace follows)
  • load text from file with r FILE
  • write and quit
问题回答

我恳请各位猜想,你会以每颗预估的反弹和反弹,接近你的目标。 AFAIK在单一步骤中无法做,因此,你可以书写功能,使之可以读懂,或者享受到你对红树林的访问:

$ echo %foo% > test
$ replacement="//this//is//a\\//test"
$ echo $replacement
//this//is//a\//test
$ stage1=${replacement//\/\\}
$ echo $stage1
//this//is//a\\//test
$ stage2=${stage1////\/}
$ echo $stage2
//this//is//a\\//test
$ ed -s test <<< g/.*foo.*/s/foo/$stage2/p
%//this//is//a\//test%

新的路线仍然是一个问题,但你不想让它们留在沥滤环境中,因为白天会在那里非常稳定。





相关问题
C++ GNU linker errors

I m trying to compile my program on Windows via Cygwin with the compilation command: g++ ping.cpp -I./include -L./lib -lchartdir50 I m using an API called ChartDirector which draws charts for me. I ...

How to avoid misformatting of binary values with GNU indent?

When GNU indent (at least version 2.2.6 and 2.2.10) is used on the following code... void main () { int i = 0b01010101; } it will be reformatted into this ... void main () { int i = 0 b01010101;...

热门标签