2016-04-20 74 views
1

我想用另一行替换一行,并在下面使用shell脚本添加新行。我的文件内容如下所示。我想JAVA_HOME=/usr/lib/jvm/java-1.8.0-ibm-1.8.0.2.10-1jpp.1.el7.x86_64 export PATH JAVA_HOMEshell脚本替换并添加特殊字符的下一行

之前更换export PATH:这应该是

export PATH 

后:

JAVA_HOME=/usr/lib/jvm/java-1.8.0-ibm-1.8.0.2.10-1jpp.1.el7.x86_64 

export PATH JAVA_HOME 

这意味着,它有可能取代替换这两条线导出路径。

请帮助我,我该怎么办与SED或shell脚本

感谢, 库马尔。

+3

http://unix.stackexchange.com/q/277938/13792 – choroba

回答

1
sed -e 's#^export PATH$#JAVA_HOME=/usr/lib/jvm/java-1.8.0-ibm-1.8.0.2.10-1jpp.1.el7.x86_64\n\nexport PATH JAVA_HOME#' <yourfile.txt 

这仅仅是一个单一的小号 ubstitute命令在sed。

一些注意事项:

  • #之后小号而不是通常的/用来避免引用的所有斜杠的路径。否则,您必须以这种方式引用路径中的每个//。你只需要报价#

  • 转义序列\n插入一个换行符。

  • 如果您想实际更新文件,请将参数-i添加到sed中。上面的代码只打印新文件到stdout

  • 正则表达式是锚固^...$),以便它在整个线相匹配,并且不只是其中的一部分。

+0

谢谢Sapanoia。它工作正常。非常感谢。 – Kumar