在awk命令中使用Bash循环迭代器

时间:2017-09-21 02:38:33

标签: bash loops awk

我正在使用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)

但这些都失败了。我认为这是由于管道输入。

我怎样才能做到这一点?

0 个答案:

没有答案