跟随符号的grep线

时间:2014-09-23 23:03:22

标签: grep

如何grep @符号后面的行?

我虽然这应该有效:grep -A @ file

@SRR797059.1 HWIEAS269_0001:5:1:1049:4995 length=38
CGAGCTCCGGCTCGGAGGACCATACTATCGTATGCNGN
+SRR797059.1 HWIEAS269_0001:5:1:1049:4995 length=38
bbbbbbbbbbbbbb^bb]_^aR_]_b_b[_BBBBBBBB
@SRR797059.2 HWIEAS269_0001:5:1:1057:20746 length=38
GGATCTGTAAACATCCTCGACTGGAAGCTTACTATCGT

输出

  CGAGCTCCGGCTCGGAGGACCATACTATCGTATGCNGN
  GGATCTGTAAACATCCTCGACTGGAAGCTTACTATCGT

1 个答案:

答案 0 :(得分:1)

-A选项后面需要一个数字,表示您需要打印的行数。

来自man页面:

>  -A num, --after-context=num
>              Print num lines of trailing context after each match. 

所以你应该尝试:

$ grep -A 1 '@' file 
@SRR797059.1 HWIEAS269_0001:5:1:1049:4995 length=38
CGAGCTCCGGCTCGGAGGACCATACTATCGTATGCNGN
--
@SRR797059.2 HWIEAS269_0001:5:1:1057:20746 length=38
GGATCTGTAAACATCCTCGACTGGAAGCTTACTATCGT

回答更新的问题:

$ awk 'p;{p=(/@/?1:0)}' file
CGAGCTCCGGCTCGGAGGACCATACTATCGTATGCNGN
GGATCTGTAAACATCCTCGACTGGAAGCTTACTATCGT

设置包含@的行的标志。打印下一行并禁用它。