我想使用Bash手动编辑Fastq文件到多个相似的行。
在Fastq文件中,序列读取从第2行开始,然后每隔四行找到一次(即第2,6,10,14行......)。
我想创建一个与Fastq文件相同的编辑文本文件,除了排序测序读数的前6个字符。
未编辑的Fastq:
@M03017:21:000000000
GAGAGATCTCTCTCTCTCTCT
+
111>>B1FDFFF
编辑Fastq:
@M03017:21:000000000
TCTCTCTCTCTCTCT
+
111>>B1FDFFF
答案 0 :(得分:1)
我猜awk
非常适合:
$ awk 'NR%4==2 {gsub(/^.{6}/,"")} 1' file
@M03017:21:000000000
TCTCTCTCTCTCTCT
+
111>>B1FDFFF
这将删除4k + 2位置中所有行中的前6个字符。
NR%4==2 {}
如果记录的数量(行数)是4k + 2表格,则做事。gsub(/^.{6}/,"")
用空字符串替换6个第一个字符。1
评估为True,打印该行。答案 1 :(得分:1)
GNU sed可以做到这一点:
sed -i~ '2~4s/^.\{6\}//' file
地址2~4
表示"从第2行开始,重复每4行"。
s
表示替换,^
匹配行开头,.
匹配任何字符,\{6\}
指定长度("量词")。替换字符串为空(//
)。
-i~
替换了该文件,留下了~
附加到文件名的备份。