我想使用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