Ich versuche bash
zu verwenden, um die Integrität bestimmter Downloads .bam
Dateien zu überprüfen. Es gibt zwei Teile (Bash 1) führt den Befehl zur Überprüfung der .bam
Dateien, die .txt
Dateien erstellt, und erstellt eine process.log
. Dieser Teil funktioniert perfekt, was ich bekomme einen Fehler in Überprüfung jeder der .txt
Dateien für eine Zeichenfolge (SUCCESS)
und wenn es dann in der process.log
gefunden wird, dass die Datei überprüft wird, wenn es nicht gefunden wird, dann ist diese Datei beschädigt. Derzeit zeigt das Terminal den Status an und gibt dann einen Fehler aus. Vielen Dank :).Bash, um die Integrität des Dateityps zu überprüfen und Protokoll zu erstellen
bash Teil 1
logfile=/home/cmccabe/Desktop/NGS/API/5-4-2016/process.log
for f in /home/cmccabe/Desktop/NGS/API/5-4-2016/*.bam ; do
echo "Start bam validation creation: $(date) - File: $f"
bname=`basename $f`
pref=${bname%%.bam}
bam validate --in $f --verbose 2> /home/cmccabe/Desktop/NGS/API/5-4-2016/bam_validation/${pref}_validation.txt
echo "End bam validation creation: $(date) - File: $f"
done >> "$logfile"
echo "Start verifying $(date) - File: $file"
value=$(grep -ic "(SUCCESS)" /home/cmccabe/Desktop/NGS/API/5-4-2016/bam_validation/*.txt)
bash Teil 2
if [ $value -eq 1 ]
then
echo "bam file is verified and complete"
else
echo "bam is corrupt, check log for reason"
echo "End bam verify: $(date) - File: $f"
fi
done >> "$logfile"
erorr
Start verifying Thu May 5 12:49:10 CDT 2016 - File:
/home/cmccabe/Desktop/loop.sh: line 11: [: too many arguments
bam is corrupt, check log for reason
End bam verify: Thu May 5 12:49:10 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/NA19240.bam
/home/cmccabe/Desktop/loop.sh: line 18: syntax error near unexpected token `done'
/home/cmccabe/Desktop/loop.sh: line 18: `done >> "$logfile"'
Datei, die für den Erfolg zu überprüfen
Number of records read = 24723078
Number of valid records = 24723078
TotalReads(e6) 24.72
MappedReads(e6) 24.57
PairedReads(e6) 0.00
ProperPair(e6) 0.00
DuplicateReads(e6) 7.33
QCFailureReads(e6) 0.00
MappingRate(%) 99.38
PairedReads(%) 0.00
ProperPair(%) 0.00
DupRate(%) 29.66
QCFailRate(%) 0.00
TotalBases(e6) 4332.46
BasesInMappedReads(e6) 4325.68
Returning: 0 (SUCCESS)
Ich machte die Änderung wie vorgeschlagen und ich bekomme keine Fehler, aber das Skript endet nicht, es schließt nie. Ohne die 'done >>" Logdatei "' ergibt sich keine Ausgabe im Log. Ich werde meinen Beitrag mit dem Code auch bearbeiten. Vielen Dank :). – Chris