我正在使用awk
来计算FASTQ文件目录中的读取长度。我正在使用建议的实施here。它的作用是列出读取长度和出现次数。
我想在这样的循环中实现它:
for i in $( ls ./Raw_data); do
awk 'NR%4 == 2 {lengths[length($0)]++} END {for (l in lengths) {print l, lengths[l]}}' <(gzip -dc "./Raw_data/"$i)
done
然而,在执行此操作时,我想指定计数来自表中的文件。因此,我想用每个awk
打印语句打印文件的名称。
我试过了:
awk 'NR%4 == 2 {lengths[length($0)]++} END {for (l in lengths) {print $i, l, lengths[l]}}' <(gzip -dc "./Raw_data/"$i)
awk 'NR%4 == 2 {lengths[length($0)]++} END {for (l in lengths) {print FILENAME, l, lengths[l]}}' <(gzip -dc "./Raw_data/"$i)
但这些都失败了。我认为这是由于管道输入。
我怎样才能做到这一点?