shell脚本替换并添加带有特殊字符的下一行

shell脚本替换并添加带有特殊字符的下一行

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

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

答案1

sed 's|^export PATH$|JAVA_HOME=/usr/lib/jvm/java-1.8.0-ibm-1.8.0.2.10-1jpp.1.el7.x86_64\
& JAVA_HOME|' < "$yourfile"

答案2

使用 sed 命令:

sed -i 's/<original text>/<new-text>/g' file.txt


sed -i 's/original/new/g' file.txt

解释:

  • sed = 流编辑器
  • -i = in-place(即保存回原始文件) 命令字符串:
  • s = 替代命令
  • 原始文本 = 描述要替换的单词(或仅单词本身)的正则表达式
  • 新文本=要替换的文本
  • g = 全局(即替换全部而不仅仅是第一次出现)
  • file.txt = 文件名

选择 :

awk '{gsub(/'pattern'/,"replacement")}' file

相关内容