我有100个文件都有类似的结构
line1
line2
stuff
RR
important stuff
问题是我想在RR出现时剪切(它在每个文件中都会剪切)。但是,这并不总是在同一行(它可以是第20行,它可以是第35行)但它始终存在。因此,在bash或R(在文件中读取时)中是否有任何方法(只是标题的cuttign)?我更喜欢R。
答案 0 :(得分:2)
您可以阅读所有行并删除不必要的行:
dat <- readLines(textConnection(
"line1
line2
stuff
RR
important stuff"))
# dat <- readLines("file.name")
dat[seq(which.max(dat == "RR") + 1, length(dat))]
# [1] "important stuff"
答案 1 :(得分:0)
如果您通过awk
bash
可以执行此操作:
awk '(/RR/){p=1; next} (p){print}' < file.txt
$ cat file.txt
line1
line2
stuff
RR
important stuff
$ awk '(/RR/){p=1; next} (p){print}' < file.txt
important stuff
当找到“RR”字符串时,这会设置标记p
,next
导致在不首先评估(p){ print }
的情况下读取下一行。将打印后续行。
答案 2 :(得分:0)
以下是几种方式:
$ tail -n+$((1 + $(grep -n '^RR$' file.txt | cut -d: -f1))) file.txt
important stuff
$
$ { while read ln; do [ "$ln" == RR ] && break; done; cat; } < file.txt
important stuff
$
$ grep -A9999 '^RR$' file.txt | tail -n+2
important stuff
$