2016-10-12 39 views
-1

我试图将包含正斜杠的字符串插入到文件的特定行中。使用sed在特定行中插入包含正斜杠的字符串

我想在文件的52行插入的字符串是:

/*-------------------------------------------------------------- 
CUSTOM VARS & MIXINS 
--------------------------------------------------------------*/ 
@import "custom/custom_vars_mixins"; 

试图一起不同的答案拼凑到这两个问题,我得出了以下代码:

sed -i 's#52i 
/*-------------------------------------------------------------- 
CUSTOM VARS & MIXINS 
--------------------------------------------------------------*/ 
@import "custom/custom_vars_mixins";#replace#g' ../style.scss 

哪返回以下错误:

sed: -e expression #1, char 5: unterminated `s' command 

任何人都可以请帮忙的语法?

+0

你需要转义反斜杠换行。 – Barmar

+0

在SO *上阅读'man page'而不是* piece。 – hek2mgl

+0

该问题与正斜杠无关,问题是该字符串包含换行符。 – Barmar

回答

2

你要找的语法是:

sed -i '52i\ 
/*--------------------------------------------------------------\ 
CUSTOM VARS & MIXINS\ 
--------------------------------------------------------------*/\ 
@import "custom/custom_vars_mixins";' ../style.scss 
+0

谢谢。在linux上工作,但mac os x sed的语法略有不同。为今后的参考提供了一个依据:https://gist.github.com/brnrds/8dfc8423f27f12aa123aa845c2a3a5a7 – bcsantos

相关问题