Ich habe 100s von Dateien in Paaren mit ähnlichen Namen Muster: was bedeutet, ihre Dateinamen sind "A0-B1.fastq.0.1.82.fastq" & "A0-B2 .fastq.0.1.82.fastq ", wobei B0 und B1 zwei verschiedene Paare angeben. "82" in den Dateinamen steht für Zufallszahl. Das Verzeichnis hat Dateien mit einer Zufallszahl von 82 bis 100. Somit gibt es für jede Zufallszahl zwei Paar Dateien (A0-B1 und A0-B2). Ich möchte beide Paare für jede Zufallszahl zusammenführen.iterieren durch Dateinamen und zusammenführen nach Muster, BASH
Hier ist, was ich versucht:
INPUT=`ls A0-*.0.1.*.fastq`
#set values for pair and random
p=`seq 1 1 2`
r=`seq 82 2 100`
for r in $INPUT;
do
cat A0-${p}.fastq.0.1.${r}.fastq > A0.merged.${r}.fastq
done
Was bin ich die richtige Ausgabe zu erhalten ??
@anishsane Außer ein glob ist, wobei in diesem Fall 'Test -f' wenn mehrfach Weg scheitern könnte Namen werden erweitert. Versuchen Sie 'test -f *' – andlrc
OK ... tatsächlich, OPs Skript betrachtend, dachte ich OP hat Dateinamen mit $ p festgelegt, die Werte 1 u. 2 nehmen. So glob würde nicht benötigt werden. Aber du hast Recht, '-f' wird fehlschlagen, wenn es für glob verwendet wird. – anishsane
Danke für die Hilfe. es hat perfekt funktioniert. – RonnB