从单词" End"的第一次出现开始直到最后一个单词"结束",需要grep它之间的所有行
在一个文件grep中,在End关键字
之间排成一行考虑带有以下行的输入文件
----End-----
two
three
---End-----
four
ten
---End-----
预期产出:
area_id
答案 0 :(得分:0)
$ awk '
/End/ { # at End
print (b==""?"":b ORS) $0 # print buffer and End line
f=1 # flag up
b="" # reset buffer
next
}
f { # after first End
b=b (b==""?"":ORS) $0 # gather the buffer
}' file
----End-----
two
three
---End-----
four
ten
---End-----
答案 1 :(得分:0)
使用sed
和tac
(来自GNU coreutils):
$ sed -n '/End/,$p' file | tac | sed -n '/End/,$p' | tac
----End-----
two
three
---End-----
four
ten
---End-----
第一个sed
仅允许从第一个分隔符到文件末尾的行通过。 tac
会反转结果中行的顺序。
然后重复sed
和tac
。