匹配字符串后的grep和输出模式

时间:2014-07-16 16:41:30

标签: string perl awk sed grep

我有两个文件,其中file1中的字符串与文件1中字符串的一部分匹配。

问题1: 如何在比赛后输出声部?

文件1:

 TGAGGTAGTAGTTTGTACAGTT
 TGAGGTAGTAGTTTGTGCTGTT
 ACATACTTCTTTATATGCCCATA

file2的:

CGCTCCGTTCTCTTTTGCCTGATTCCAGGCTGAGGTAGTAGTTTGTACAGTTTGAGGGTCTATGATACCACCCGGTACAGGAGATAA
GTCCGCCGGCTCCCACACCATGGCCCTGGCTGAGGTAGTAGTTTGTGCTGTTGGTCGGGTTGTGACATT
TTGTGCACACTGAACCTACCTGCTTGGGACACATACTTCTTTATATGCCCATATGAAC

输出:

 TTGCCTGATTCCAGGCTGAGGTAGTAGTTTGTACAG
 CACACCATGGCCCTGGCTGAGGTAGTAGTTTGTGCTG
 CCTGCTTGGGACACATACTTCTTTATATGCCC

问题2: 如何在比赛前输出部分?

文件1:

GCTGAGGTAGTAGTTTGTACAG
CTGGCTGAGGTAGTAGTTTGTGCT
TTATATGCCC

file2的:

CGCTCCGTTCTCTTTTGCCTGATTCCAGGCTGAGGTAGTAGTTTGTACAG
GTCCGCCGGCTCCCACACCATGGCCCTGGCTGAGGTAGTAGTTTGTGCTG
TTGTGCACACTGAACCTACCTGCTTGGGACACATACTTCTTTATATGCCC

输出:

CGCTCCGTTCTCTTTTGCCTGATTCCAG
GTCCGCCGGCTCCCACACCATGGCCCTGG
TTGTGCACACTGAACCTACCTGCTTGGGACACATACTTCT
如果我只有一个模式,grep -A也可以工作。但是我有多个模式(file1)

1 个答案:

答案 0 :(得分:1)

对于比赛前的部分:

awk 'NR==FNR{a[NR]=$0;next} {split($0,b,a[FNR]); print b[1]}' file1 file2

对于之后的部分:

awk 'NR==FNR{a[NR]=$0;next} {split($0,b,a[FNR]); print b[2]}' file1 file2