我正在尝试使用脚本在新文本出现时在乳胶文件中插入\ cbstart {}和\ cbend {}标记。
end=$(( $start + $diff ))
sed -i "" "${start}s/^/\\\\cbstart{} /" "$OUT"
sed -i "" "${end}s/$/ \\\\cbend{}/" "$OUT"
但是,当\ cbend {}标记放在最后包含注释的新行上时:
\cbstart{} Example text. %Example commment \cbend{}
评论结束标记。有没有办法使用sed将\ cbend {}标记放在%或新行之前?
答案 0 :(得分:0)
也许:
sed -i "" "${end}s/\\( %.*\\|$\\)/ \\\\cbend{}\\1/" "$OUT"
saner逃避
sed -i "" "${end}"'s/\( %.*\|$\)/ \\cbend{}\1/' "$OUT"
我在发布之前测试了这个:
end=""
{ echo foo; echo "bar % with comment"; } |
sed "${end}"'s/\( %.*\|$\)/ \\cbend{}\1/'
foo \cbend{}
bar \cbend{} % with comment
由于OP在Mac上,所需的sed咒语是:
sed -i "" -E "${end}"'s/( %.*|$)/ \\cbend{}\1/' "$OUT"