我有一个包含以下内容的文件:
aaaaaaaaaa
export ORACLE_HOME=/home/oracle/test/prod/db_1
bbbbbbbbbb
现在我想替换
行export ORACLE_HOME=/home/oracle/test/prod/db_1
像下面这样的东西:
export ORACLE_HOME=/u01/app/oracle/product/11204/dbhome_1
我尝试了通过 Google 找到的多种方法,例如使用“sed”或“awk”,但都没有用。我试过了:
export D1="export ORACLE_HOME=/u01/app/oracle/product/11204/dbhome_1"
sed -i -e "s+export ORACLE_HOME=/home/oracle/test/prod/db_1+$D1+" file.lst
注意:正如谷歌搜索所说,由于字符串包含“/”,因此需要使用不同的分隔符,如“+”。
你能告诉我正确的命令吗?
最佳答案
sed -r 's~(ORACLE_HOME=).*~\1new/path/here~'
这里使用~
作为分隔符。如果新路径是 bash 变量,则可以转义引号
sed -r 's~(ORACLE_HOME=).*~\1'$D1'~'
关于linux - 如何用包含 Linux 文件中另一行(新目录路径)的变量替换一行(目录路径)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33662031/