shell - 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 。我尝试在源文件中使用 /$ 转义 $ 但这也没有帮助。
问候。
解决方案
根据您编辑的问题,以下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
推荐阅读
- computational-geometry - 如何从 vtkMarchingSquares 获得定向轮廓
- cognos - Cognos 图 - 根据不同维度的值指定样式
- rabbitmq - Spring streamBridge 在启动时创建rabbitmq队列
- android - Android ViewModel 正在泄漏
- xamarin.forms - Xamarin.Forms 中的设置列表
- sql - Sql需要对列进行多次求和并将结果水平拆分为一行
- python-3.x - Django 单元测试句柄 PermissionDenied
- r - 尝试在 Ubuntu 18.04 上安装 tidycensus 包时出错
- angular - 如何在 Angular Reactive Forms 中正确呈现动态表单?
- c++ - 仅当将(IF)循环合并到while循环中时才过早地强制结束while循环?