Используя R, вот несколько возможных ответов с небольшими отличиями, так как я не уверен, что именно вы хотите
# Just a step to read in an extended version of your sample data
dat <- as.matrix(read.table(text=
"A
B
C
D
E
A
B
C
D
E
F
A
B
C
D
E
F
G
H
A
B
C
D
E
F"))
Это один из способов разделить. Вы можете сделать индекс, по которому можно разделить группы. Затем разделите линии на основе группировок.
splitgrp <- cumsum(ave(dat=="A", dat)) # group index
splitlist <-split(dat,splitgrp) # if you want a list
Затем вы можете сделать этот список различными объектами, если хотите, например:
vecofstrings <- sapply(splitlist,paste0,collapse="") # if you want a vector
df <- data.frame(vecofstrings) # if you want a data frame
mat <- matrix(vecofstrings) # if you want a matrix
Наконец, вот несколько способов сохранить эти объекты:
write.table(mat,"mat.csv")
write.table(mat,"mat.csv", quote=F, row.names=F)
# Here are a few ways to save a data frame.
write.table(df,"df.txt")
write.table(df,"df.txt", quote=F) # no quotes in the saved file
write.table(df,"df.txt", row.names=F) # no row names in the saved file
write.table(df,"df.txt", row.names=F, col.names=F) # no row or column names in the saved file
write.table(df,"df.txt",row.names=F, col.names=F, quote=F) # no row or columns names and no quotes in the saved file