我希望在文件中的范围结束之前添加一些行。
sed '/BEGIN/,/END/ /$/i \ SOME TEXT TO ADD' /path/to/foo
random text
BEGIN
foo
bar
END
random text
random text
BEGIN
foo
bar
SOME TEXT TO ADD
END
random text
关于如何实现这一目标的任何想法?
答案 0 :(得分:1)
这可能适合你(GNU sed):
sed '/BEGIN/,/END/!b;/END/iSOME TEXT TO ADD' file
如果BEGIN
和END
之间的行不正常打印,否则如果该行包含END
插入一些文字。
答案 1 :(得分:0)
为什么不直接查找结束标记,然后插入:
sed '/END/ iSOME TEXT TO ADD' /path/to/foo
否则你必须使用几行:
sed '/BEGIN/,/END/ {
/END/ iSOME TEXT TO ADD
}' /path/to/foo