展开SED变量 [英] Expand variables in sed

查看:210
本文介绍了展开SED变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要用sed进入bash脚本,脚本的任何线路NUMER后,用一些对数值(下工作)

添加线条

  SED -i.bak'14I \\ SOME_TEXT = SOME_TEXT'文件

但我需要的bash脚本(SH),用于扩展变量(下无法正常工作)

  SED -i.bak'$ number_linei \\ $ VAR1 = $ VAR2'$ VAR3


解决方案

只需使用双引号来代替单引号。您还需要使用 {} 来正确分隔第NUMBER_LINE 变量,逃离 \\ 了。

  SED -i.bak$ {} NUMBER_LINE我\\\\ $ VAR1 = $ VAR2$ VAR3

我个人preFER看的所有的的变量使用 {} ,喜欢的东西结束了:

  SED -i.bak$ {} NUMBER_LINE我\\\\ $ {VAR1} = $ {} VAR2$ {} VAR3

I need use sed into bash script, for add lines after any line numer of script with some pair of values (below work)

sed -i.bak '14i\some_text=some_text' file

But I need on script bash (sh) for expand variables (below not work)

sed -i.bak '$number_linei\$var1=$var2' $var3

解决方案

Just use double quotes instead of single quotes. You'll also need to use {} to delimit the number_line variable correctly and escape the \, too.

sed -i.bak "${number_line}i\\$var1=$var2" $var3

I'd personally prefer to see all of the variables use the {}, ending up with something like:

sed -i.bak "${number_line}i\\${var1}=${var2}" ${var3}

这篇关于展开SED变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆