当前位置: 技术问答>linux和unix
求用sed插入多行带特殊字符的方法
来源: 互联网 发布时间:2016-09-16
本文导语: 比方我有个t.cpp文件 里面有一行//tag 我想在这行前面插入一段代码 当然这段代码会有/"(之类的特殊字符 如果用sed -i '/pattern/i src' filename 这种 需要对src代表的字符串中特殊字符加 如果用sed -i '/pattern/r file' f...
比方我有个t.cpp文件
里面有一行//tag
我想在这行前面插入一段代码 当然这段代码会有/"(之类的特殊字符
如果用sed -i '/pattern/i src' filename 这种 需要对src代表的字符串中特殊字符加
如果用sed -i '/pattern/r file' filename 这种 把插入代码放入一个临时文件中 但只能插入后面
不知怎样把这两种组合一下 即能从文件插入 又能插入到匹配行的前面
或者能提供其他的方法
主要是不想复制粘贴了,想搞个自动生成代码的脚本。。
里面有一行//tag
我想在这行前面插入一段代码 当然这段代码会有/"(之类的特殊字符
如果用sed -i '/pattern/i src' filename 这种 需要对src代表的字符串中特殊字符加
如果用sed -i '/pattern/r file' filename 这种 把插入代码放入一个临时文件中 但只能插入后面
不知怎样把这两种组合一下 即能从文件插入 又能插入到匹配行的前面
或者能提供其他的方法
主要是不想复制粘贴了,想搞个自动生成代码的脚本。。
|
如果只有一行//tag那就好办了
line=`grep -n tag t.cpp | cut -d ":" -f 1`
line=$((line-1))
sed -i "$line r file" t.cpp
line=`grep -n tag t.cpp | cut -d ":" -f 1`
line=$((line-1))
sed -i "$line r file" t.cpp
|
楼上的就能实现了
//tag是注释 又不是有效代码
所以我觉得插在//tag的前面和后面 效果是一样的啊 为什么非要查在前面呢?
或者你吧//tag肯定能放到查在前面后面都一样的情况吧
//tag是注释 又不是有效代码
所以我觉得插在//tag的前面和后面 效果是一样的啊 为什么非要查在前面呢?
或者你吧//tag肯定能放到查在前面后面都一样的情况吧