跳过或删除两个模式之间的行

Skip or delete lines between two patterns

我有可以使用 readLines 读取的基于文本的数据。我想用 R 消除以 Hello World 开头的行到 !Hello World.

abc
adb
exy
Hello World
123
abc
adb
aex
!Hello World
bfd
exy
uyt

您可以使用标准向量索引来获取不在第一次出现 "Hello World" 和最后一次出现 "!Hello World" 之间的值:

d[!seq_along(d) %in% min(which(d == "Hello World")):max(which(d == "!Hello World"))]
# [1] "abc" "adb" "exp" "bfd" "exy" "uyt"

数据:

d = c("abc", "adb", "exp", "Hello World", "123", "abc", "adb", "aex", "!Hello World", "bfd", "exy", "uyt")