我想使用bash脚本插入一大块代码。如何避免必须使用sed添加' n'(1)
这是我如何使用sed(1)工作的;
$ sed "/);/i\
\ \ \ \ 'doctrine' => array(\n\
'driver' => array(\n\
__NAMESPACE__ . '_driver' => array(\n\
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',\n\
'cache' => 'array',\n\
'paths' => array(__DIR__ . '\../src/' . __NAMESPACE__ . '/Entity')\n\
),\n\
'orm_default' => array(\n\
'drivers' => array(\n\
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'\n\
)\n\
)\n\
)\n\
),\n
" config/autoload/local.php;
注:我必须以使其工作添加\ n和\在每行的末尾。
有没有办法“不”必须这样做?要插入纯文本?也许是不同的命令?
编辑:我的问题是如何插入文本,而不必添加所有的反斜杠和换行符。
这是我需要插入文本:
'doctrine' => array( 'driver' => array( __NAMESPACE__ . '_driver' => array( 'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 'cache' => 'array', 'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity') ), 'orm_default' => array( 'drivers' => array( __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver' ) ) ) )
脚本只需插入代码块没有任何特殊搜索或替换命令,为什么sed? – didierc
很确定你不需要\ n \' – doubleDown