Vraag Genereer een afzonderlijk .md5-bestand voor elk .fastq-bestand in een map?


Ik probeer afzonderlijke .md5-bestanden te genereren voor elk .fastq-bestand in een map. Ik vond oplossingen voor het genereren van een enkel .md5-bestand voor veel bestanden, maar dit is niet wat ik zoek.

ik heb file1.fastq, file2.fastq, file3.fastq en wil genereren file1.md5, file2.md5, file3.md5.

Ik neem aan dat een FOR-lus het zou lukken, maar ik ben geen programmeur en kan geen oplossing voor dit probleem vinden.

Ik heb ook de volgende code geprobeerd:

find . -type f -name "*.fastq.gz" -exec sh -c "md5sum < {} > {}.md5" \;

Het genereert correct een .md5-bestand voor elk .fastq-bestand, maar de inhoud van het .md5-bestand is niet correct, dat wil zeggen, ik krijg 64399513b7d734ca90181b27a62134dc - 

in plaats van 64399513b7d734ca90181b27a62134dc testfile.fastq 

Kan iemand helpen?


2
2018-01-29 10:50


oorsprong


Antwoorden op askubuntu.com/questions/318530/...  post geeft alleen uitleg over het genereren van een enkel .md5-bestand voor veel bestanden - Chris_bio
Wacht even, zijn uw bestanden *fastq of *fastq.gz? - terdon♦


antwoorden:


Het eenvoudigste geval is:

for file in *fastq; do md5sum "$file" > "$file".md5; done

Dat zal echter bestandsnamen maken zoals file1.fastq.md5. Uitbreidingen zijn in principe niet relevant, dus dat is geen probleem, maar als je dat liever hebt file1.md5 doe dit in plaats daarvan:

for file in *fastq; do md5sum "$file" > "${file//.fastq}".md5; done

5
2018-01-29 11:02



De eerste optie is precies wat ik nodig had. Bedankt terdon! - Chris_bio


Ook jouw md5sum opdracht drukt de bestandsnaam niet af omdat elk bestand wordt gelezen uit de shell vanwege de < omleiding, en md5sum kan de oorspronkelijke bestandsnaam niet kennen, omdat deze de inhoud van het bestand rechtstreeks heeft ingevoerd.

Dus als u alle bestanden in de huidige werkmap recursief wilt verwerken, kunt u in plaats daarvan deze opdracht gebruiken:

find . -type f -name "*.fastq.gz" -exec sh -c "md5sum {} > {}.md5" \;

3
2018-01-29 11:07