首页 > 解决方案 > Sed 在特定行之后插入值

问题描述

再次重写整个问题。

你好,

我在以下格式的文件(db_config.txt)中有数据

export ORACLE_HOME=/oracle_client/instantclient_19_11
export LD_LIBRARY_PATH="$ORACLE_HOME"
ORACLE_SID=TESTDB.locahost.com; export ORACLE_SID
export PATH="$ORACLE_HOME:$PATH" 
nohup sqlplus ABCSDC/Pfgrtjf#dtt@TESTDB << EOF

现在,我在变量中捕获数据

 db_connection=`cat db_config.txt`

回声产生正确的数据。

我正在尝试将此数据插入到从第 4 行开始的另一个文件中。

sed  "4 i $db_connection" test1.sh

我收到以下错误

sed: -e expression #1, char 98: unknown command: `O'

据我了解,它无法复制 $ORACLE_HOME 。我尝试在源文件中使用 /$ 转义 $ 但这也没有帮助。

问候。

标签: shellsed

解决方案


根据您编辑的问题,以下sed应该有效:

sed -i.bak '4 r db_config.txt' test1.sh

在 OSX sed 上,您可以使用以下 sed 命令:

sed "4 i\\
$db_connection
" test1.sh

在线保存更改:

sed -i.bak "4 i\\
$db_connection
" test1.sh

推荐阅读