2016-04-20 107 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