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