【问题标题】:shell script replace and add next line with special charactersshell脚本用特殊字符替换并添加下一行
【发布时间】:2016-08-13 20:36:14
【问题描述】:

我正在尝试用另一行替换一行,并使用 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

之前:

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 替换为这两行。

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

谢谢, 库马尔。

【问题讨论】:

标签: linux bash shell sed


【解决方案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 中的一个 substitute 命令。

一些注意事项:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2021-03-06
    • 2013-12-23
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2017-12-06
    相关资源
    最近更新 更多