【发布时间】:2015-05-05 03:57:35
【问题描述】:
我想通过以下方式进行字符串替换:
要求:
必须根据参考文件中的值更改输出。
输入:
aaaa
val1=xxx
val2=yyy
val3=zzz
bbbb
val1=ppp
val2=qqq
val3=rrr
aaaa
val1=xxx
val2=yyy
val3=zzz
参考文件:
block variable value
aaaa val1 iii
aaaa val2 jjj
aaaa val3 kkk
bbbb val1 eee
bbbb val2 fff
bbbb val3 ggg
输出:
aaaa
val1=iii
val2=jjj
val3=kkk
bbbb
val1=eee
val2=fff
val3=ggg
aaaa
val1=iii
val2=jjj
val3=kkk
目前的方法:
目前我尝试使用 Sed 命令执行此操作。使用它我可以替换 1 块代码,即,
aaaa
val1=xxx
val2=yyy
val3=zzz
进入,
aaaa
val1=iii
val2=jjj
val3=kkk
val1、val2、val3 变量出现在块 'aaaa' 和 'bbbb' 中。但是对于块 'aaaa' 的值会有所不同,对于块 'bbbb' 的值会有所不同。 目前使用'sed'命令我可以替换块'aaaa'的值,但对于'bbbb'块也采用相同的值。
查询:
如何单独为一组特定的行执行“sed”命令(或任何其他字符串替换命令)?我的要求是,控件必须检查块名称,然后从参考文件中获取变量的相关值。
如果有人能给我一个解决方案,那将是非常有帮助的。
谢谢!
Ra-V.
【问题讨论】: