我正在尝试用另一行替换一行,并使用shell脚本在下面添加新行。我的文件内容如下所示。我想将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
之前:
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
这意味着,它必须用这两行代替替换导出PATH。
请帮助我如何使用sed或shell脚本
谢谢, 库马尔。
答案 0 :(得分: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
这只是sed。
中的一个 s ubstitute命令一些注意事项:
在{strong> s 之后使用#
而不是通常的/
,以避免引用路径中的所有斜杠。否则,您必须以这种方式引用路径中的每个/
:/
。你只需要引用#
。
转义序列\n
插入换行符。
如果要实际更新文件,请将-i
参数添加到sed。上面的代码仅将新文件打印到 stdout 。
正则表达式是锚定(^...$
),因此它匹配整行,而不仅仅是它的一部分。