gpt4 book ai didi

linux - shell脚本用特殊字符替换并添加下一行

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:19 24 4
gpt4 key购买 nike

我正在尝试用 shell 脚本将一行替换为另一行并在该行下方添加新行。我的文件内容如下所示。我想用 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

这意味着,它必须用这两行替换 replace export PATH。

请帮助我如何使用 sed 或 shell 脚本

谢谢,库马尔。

最佳答案

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替换命令。

一些注意事项:

  • s 之后使用 # 而不是通常的 / 以避免必须引用路径中的所有斜杠。否则,您必须以这种方式引用路径中的每个 /:/。现在你只需要引用 #.

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

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

  • 正则表达式是锚定 (^...$) 的,因此它匹配整行,而不仅仅是其中的一部分。

关于linux - shell脚本用特殊字符替换并添加下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36756111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com