bash
ниже почти завершено. Единственная часть, с которой я борюсь, заключается в том, что в process.log
, если найдена строка The bam file is corrupted and has been removed, please check log for reason.
, то удаляется .bam
($f
) в bash
. Я добавил:bash, чтобы удалить файл в каталог, если строка поиска найдена в другом файле
echo "The bam file is corrupted and has been removed, please check log for reason."
[[ -f "$f" ]] && rm -f "$f"
в попытке сделать это, но похоже, что он удаляет последний .bam
независимо (в process.log NA19240.bam (этот файл имеет строку поиска в нем), но но последний .bam
(NS12911
) в process.log (хотя строки поиска там нет). Я не могу это исправить и нуждаюсь в некоторой экспертной помощи. Извиняюсь за длинный пост, просто пытаюсь добавьте все детали. Спасибо :).
Баш
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"
for file in /home/cmccabe/Desktop/NGS/API/5-4-2016/bam_validation/*.txt ; do
echo "Start verifying $(date) - File: $file"
bname=`basename $file`
if $(grep -iq "(SUCCESS)" "${file}"); then
echo "The verification of the bam file has completed sucessfully."
else
echo "The bam file is corrupted and has been removed, please check log for reason."
[[ -f "$f" ]] && rm -f "$f"
echo "End of bam file verification: $(date) - File: ${file}"
fi
done >> "$logfile"
process.log
Start bam validation creation: Fri May 6 13:20:48 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/NA12878.bam
End bam validation creation: Fri May 6 13:24:15 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/NA12878.bam
Start bam validation creation: Fri May 6 13:24:15 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/NA19240.bam
End bam validation creation: Fri May 6 13:24:15 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/NA19240.bam
Start bam validation creation: Fri May 6 13:24:15 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/NS12911.bam
End bam validation creation: Fri May 6 13:28:03 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/NS12911.bam
Start verifying Fri May 6 13:28:03 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/bam_validation/NA12878_validation.txt
The verification of the bam file has completed successfully.
End of bam file verification: Fri May 6 13:28:03 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/bam_validation/NA12878_validation.txt
Start verifying Fri May 6 13:28:03 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/bam_validation/NA19240_validation.txt
The bam file is corrupted and has been removed, please check log for reason.
End of bam file verification: Fri May 6 13:28:05 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/bam_validation/NA19240_validation.txt
Start verifying Fri May 6 13:28:05 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/bam_validation/NS12911_validation.txt
The verification of the bam file has completed successfully.
End of bam file verification: Fri May 6 13:28:05 CDT 2016 - File: /home/cmccabe/Desktop/NGS/API/5-4-2016/bam_validation/NS12911_validation.txt
Может быть, вы хотите внимательно посмотреть, где вы используете переменную '$ f' против' $ file'? – mustaccio
'$ f' - это оригинальный' .bam' и '$ file' - это' .txt', в котором есть строка поиска. Если строка поиска находится в '$ file', то' $ f' удаляется. Спасибо :). – Chris