粘贴两个文件对应的所有偶数行号
Paste all corresponding even line numbers of two files
我有两个这种格式的大文件 (fastq):
文件 1:
@f.1 A:B:C:D:E:F:1 length=20
NTCCANAAAAGCAGTGGTAT
+f.1 A:B:C:D:E:F:1 length=20
#AAAA#FF<FFFFFFFAF<F
@f.1 A:B:C:D:E:F:2 length=20
NACAANCACCCAGGGGAGAG
+f.1 A:B:C:D:E:F:2 length=20
#7AAA#FFFFFAFFFF<<FF
文件 2:
@f.2 A:B:C:D:E:F:1 length=60
NCGTTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.2 A:B:C:D:E:F:1 length=60
#.A..F######################################################
@f.2 A:B:C:D:E:F:2 length=60
NGCCTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.2 A:B:C:D:E:F:2 length=60
#<AAA<######################################################
我想将文件 1 中的每个偶数行号(第 2、4、6、.. 行)与文件 2 中每个相应的偶数行号粘贴。
文件 2 的奇数行号可以保留(我随后会更改长度值以反映更新后的长度,在本例中为 80。)
所以我的结果文件将是:
@f.1 A:B:C:D:E:F:1 length=80
NTCCANAAAAGCAGTGGTATNCGTTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.1 A:B:C:D:E:F:1 length=80
#AAAA#FF<FFFFFFFAF<F#.A..F######################################################
@f.1 A:B:C:D:E:F:2 length=80
NACAANCACCCAGGGGAGAGNGCCTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.1 A:B:C:D:E:F:2 length=80
#7AAA#FFFFFAFFFF<<FF#<AAA<######################################################
嗯,paste
是一个很好的方法。只需粘贴所有行,然后更正奇数行。根据你的例子,我在这里的更正是一个简单的sed
。 YMMV 如果您的示例中未显示其他变量在起作用:
$ paste -d '[=10=]' file1 file2 | sed 's/ length=20.*$/ length=80/g'
@f.1 A:B:C:D:E:F:1 length=80
NTCCANAAAAGCAGTGGTATNCGTTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.1 A:B:C:D:E:F:1 length=80
#AAAA#FF<FFFFFFFAF<F#.A..F######################################################
@f.1 A:B:C:D:E:F:2 length=80
NACAANCACCCAGGGGAGAGNGCCTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.1 A:B:C:D:E:F:2 length=80
#7AAA#FFFFFAFFFF<<FF#<AAA<######################################################
我有两个这种格式的大文件 (fastq): 文件 1:
@f.1 A:B:C:D:E:F:1 length=20
NTCCANAAAAGCAGTGGTAT
+f.1 A:B:C:D:E:F:1 length=20
#AAAA#FF<FFFFFFFAF<F
@f.1 A:B:C:D:E:F:2 length=20
NACAANCACCCAGGGGAGAG
+f.1 A:B:C:D:E:F:2 length=20
#7AAA#FFFFFAFFFF<<FF
文件 2:
@f.2 A:B:C:D:E:F:1 length=60
NCGTTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.2 A:B:C:D:E:F:1 length=60
#.A..F######################################################
@f.2 A:B:C:D:E:F:2 length=60
NGCCTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.2 A:B:C:D:E:F:2 length=60
#<AAA<######################################################
我想将文件 1 中的每个偶数行号(第 2、4、6、.. 行)与文件 2 中每个相应的偶数行号粘贴。 文件 2 的奇数行号可以保留(我随后会更改长度值以反映更新后的长度,在本例中为 80。)
所以我的结果文件将是:
@f.1 A:B:C:D:E:F:1 length=80
NTCCANAAAAGCAGTGGTATNCGTTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.1 A:B:C:D:E:F:1 length=80
#AAAA#FF<FFFFFFFAF<F#.A..F######################################################
@f.1 A:B:C:D:E:F:2 length=80
NACAANCACCCAGGGGAGAGNGCCTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.1 A:B:C:D:E:F:2 length=80
#7AAA#FFFFFAFFFF<<FF#<AAA<######################################################
嗯,paste
是一个很好的方法。只需粘贴所有行,然后更正奇数行。根据你的例子,我在这里的更正是一个简单的sed
。 YMMV 如果您的示例中未显示其他变量在起作用:
$ paste -d '[=10=]' file1 file2 | sed 's/ length=20.*$/ length=80/g'
@f.1 A:B:C:D:E:F:1 length=80
NTCCANAAAAGCAGTGGTATNCGTTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.1 A:B:C:D:E:F:1 length=80
#AAAA#FF<FFFFFFFAF<F#.A..F######################################################
@f.1 A:B:C:D:E:F:2 length=80
NACAANCACCCAGGGGAGAGNGCCTGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
+f.1 A:B:C:D:E:F:2 length=80
#7AAA#FFFFFAFFFF<<FF#<AAA<######################################################