我正在尝试为目录中的每个 .fastq 文件生成单独的 .md5 文件。我找到了为许多文件生成单个 .md5 文件的解决方案,但这不是我想要的。
我有file1.fastq
, file2.fastq
,file3.fastq
并且想要生成file1.md5
, file2.md5
, file3.md5
.
我认为 FOR 循环可以解决问题,但我不是程序员,似乎无法找到解决此问题的方法。
我还尝试了以下代码:
find . -type f -name "*.fastq.gz" -exec sh -c "md5sum < {} > {}.md5" \;
它为每个 .fastq 文件正确生成一个 .md5 文件,但 .md5 文件内容不正确,即我得到64399513b7d734ca90181b27a62134dc -
代替64399513b7d734ca90181b27a62134dc testfile.fastq
任何人都可以帮忙吗?
最简单的情况是:
但是,这将创建像
file1.fastq.md5
. 扩展在这里基本上是无关紧要的,所以这不是问题,但如果你更喜欢file1.md5
这样做:此外,您的
md5sum
命令不会打印文件名,因为由于<
重定向,每个文件都是从 shell 读取的,并且md5sum
不可能知道原始文件名,因为它直接提供了文件的内容。因此,如果您想递归处理当前工作目录中的所有文件,您可以使用以下命令: