我正在尝试专门使用插入行之前和行之后插入模式匹配路径。
到目前为止,我发现的所有例子都只提到替换。 如何在行之前和之后正确传递/读取变量?
我正在做的示例布局显然失败了:
Function0[Function2[Int, Int, Int]
请求前后:(线条保持不变,因此之前和之后都相同)
path="/home/pi/eqserver/source"
sed "/\$path/i <br>\n<span style="color:white">" ./input_file> ./output_file
底部的span标签可以从完全不同的工作模式匹配中获得。这不是这种模式的结果。我只是把它作为参考。
包含路径的每一行都会有不同的内容,但路径将始终相同。 我正在将所有行从make输出转换为他们自己的跨度。 它是构建输出的浏览器友好视图的一部分。
每个请求的预期输出:
<br>
Fri 17 Jun 2016 05:22:48 PM PDT: In file included from /home/pi/eqserver/source/common/patches/mac.cpp:112:0:
Fri 17 Jun 2016 05:22:48 PM PDT: /home/pi/eqserver/source/common/patches/ss_define.h:151:0: warning: "DECODE_LENGTH_ATLEAST" redefined
<br>
<span style="color:white">
使用此解决方案,第二个sed将添加结束范围。
答案 0 :(得分:2)
这可能适合你(GNU sed):
sed -e '\#/file/path#i above' -e '//a below' file
N.B。文件路径的替代分隔符\#...#
和两个表达式(-e
),以满足隐式换行符结束i
和a
命令。
答案 1 :(得分:1)
看起来你几乎就在那里。
看起来你的#1问题是$ path中的元字符。
$: path=$( echo "/home/pi/eqserver/source" | sed 's/\//\\\//g' )
$: sed "/$path/i <br>\n<span style=\"color:white\">" ./input_file
<br>
<br>
<span style="color:white">
Fri 17 Jun 2016 05:22:48 PM PDT: In file included from /home/pi/eqserver/source/common/patches/mac.cpp:112:0:
<br>
<span style="color:white">
Fri 17 Jun 2016 05:22:48 PM PDT: /home/pi/eqserver/source/common/patches/ss_define.h:151:0: warning: "DECODE_LENGTH_ATLEAST" redefined
<br>
<span style="color:white">