为多个 fastq 中的每次读取创建读取长度计数

问题描述 投票:0回答:1

我有一个包含许多 fasq 文件的目录。我正在使用此命令来计算读取长度并输出到新文件中。

sed -n '2~4p' FAX08345_abafd786_a8df7914_1131.fastq | awk '{ print length }' > len.text

我想将此命令应用于目录中的所有 fastq 文件,并且我需要输出以创建唯一的文件名 len.x,例如,其中 x = fastq 的文件名。

我在 Bash 工作。

这是我的文件列表的片段:

FAX08345_abafd786_a8df7914_1131.fastq FAX08345_abafd786_a8df7914_1173.fastq FAX08345_abafd786_a8df7914_60.fastq
FAX08345_abafd786_a8df7914_1135.fastq FAX08345_abafd786_a8df7914_1175.fastq FAX08345_abafd786_a8df7914_64.fastq

bash loops
1个回答
0
投票

听起来这可能就是您想要做的:

awk '
    FNR == 1 { close(out); out="len."FILENAME }
    FNR >= 2 { print length() > out }
    FNR == 4 { nextfile }
' *.fastq

如果你的 awk 不支持

nextfile
则将其更改为:

awk '
    FNR == 1 { close(out); out="len."FILENAME }
    (2 <= FNR) && (FNR <= 4) { print length() > out }
' *.fastq

它的运行速度只会比您使用

nextfile
慢一点。

© www.soinside.com 2019 - 2024. All rights reserved.