如何在文件中grep -n并将两个结果之间的行保存到文件中

时间:2014-01-17 11:02:43

标签: regex bash sed grep

我想从一个文件中获取多个reg-ex。我做了一个for循环。每个reg-ex在文件中有2次出现。我已经使用grep -n来获取我的reg-ex所在的两行的行号。见例子: cat ../stdout_info/HTSeqQAllBAMsamples.o277329 | grep -n Sample_10Y_W34是:

49081:Sample_10Y_W34
73620:sample:Sample_10Y_W34已排序

我写了下一行来获取正则表达式。每个'我'都是一个注册。 (总共48个)

for i in $(ls ../Datasets_qualityResults/); do echo $(basename $i); done

我想将49081 - 736 * 14 *(总是减去最后6行)的行打印到名为'results_Sample_10Y_34.txt'的文件中。

我用sed和grep工作了很长时间,但它不起作用。 任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

如果我理解这个问题是正确的,你需要说:

sed -n '/Sample_10Y_W34/,/Sample_10Y_W34/p' filename | head -n -6 > outputfile

sed命令将打印模式之间的行,head将删除输出的最后6行,结果将重定向到文件outputfile