2014-09-08 1 views
0

Я отправляю пакетный файл в кластер slurm, который awks поля с тем же infile и добавляет к выводу. Первые несколько строк работают, но затем он умирает. Он умирает, прежде чем повторять второй раз. Было бы неплохо, если бы кто-то отлаживал или показывал мне лучший скрипт, но я хотел бы знать, почему (или если) файл bash будет разбиваться, когда он будет выполнять одну и ту же работу снова и снова. сообщениеAwking несколько раз в файле сценария оболочки

#!/bin/bash 
#SBATCH -A b2014091 
#SBATCH -p core 
#SBATCH -n 1 
#SBATCH -t 23:00:00 
#SBATCH -J sbatch 

#input was MK...vcf 

input=$1 

output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="1/1") && (substr($15,1,3)=="1/1") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="0/0") && (substr($15,1,3)=="0/0") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="1/1") && (substr($15,1,3)=="./.") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="./.") && (substr($15,1,3)=="1/1") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="0/0") && (substr($15,1,3)=="./.") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="./.") && (substr($15,1,3)=="0/0") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 

Ошибка:

slurmstepd: get_exit_code задача 0 умер от сигнала

Пример поля 12-15:

1/1:0,38:38:99:1149,114,0  1/1:0,39:39:99:1161,117,0  1/1:0,46:46:99:1383,138,0  0/1:21,18:39:99:413,0,524 
+0

Что такое сообщение об ошибке, когда он терпит неудачу? – 2014-09-08 09:27:21

+0

Также вы можете привести пример строки, из которой вы берете субстраты? – 2014-09-08 09:39:51

ответ

0

Может быть, вы можете изменить все это:

input=$1 

output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="1/1") && (substr($15,1,3)=="1/1") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="0/0") && (substr($15,1,3)=="0/0") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="1/1") && (substr($15,1,3)=="./.") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="./.") && (substr($15,1,3)=="1/1") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="0/0") && (substr($15,1,3)=="./.") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="./.") && (substr($15,1,3)=="0/0") {print $0}') 
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt 

К этому?

awk '!/^#/ && substr($12,1,3)~/[01.]\/[01.]/ && substr($15,1,3)~/[01.]\/[01.]/' <<< $1 > /proj/b2014091/nobackup/potHomoF1.txt 

Попробуйте как это:

awk '{a=substr($12,1,3);b=substr($15,1,3)} !/^#/ && ((a=="1/1" && b=="1/1") || (a=="0/0" && b=="0/0") || (a=="1/1" && b=="./.") || (a=="./." && b=="1/1") || (a=="0/0" && b=="./.") || (a=="./." && b=="0/0"))' $1 > /proj/b2014091/nobackup/potHomoF1.txt 

или

input=$1 
awk '{a=substr($12,1,3);b=substr($15,1,3)} !/^#/ && ((a=="1/1" && b=="1/1") || (a=="0/0" && b=="0/0") || (a=="1/1" && b=="./.") || (a=="./." && b=="1/1") || (a=="0/0" && b=="./.") || (a=="./." && b=="0/0"))' ${input} > /proj/b2014091/nobackup/potHomoF1.txt 
+0

Не будет ли это включать «0/1», который является одной из строк, которых я избегаю? – AWE

+0

Возможно, что-то вроде '/ \ ([01.] \) \/(\ 1) /' – AWE

+0

Да, так оно и будет. Возможно, вам нужно разбить его, но вы все равно можете сделать все в одном 'awk' Попробуйте это' awk '!/^ #/&& substr ($ 12,1,3) ~/(1 \/1) | (0 \/0) | (\. \/\.)/&& substr ($ 15,1,3) ~/(1 \/1) | (0 \/0) | (\. \/\.)/' – Jotne

 Смежные вопросы

  • Нет связанных вопросов^_^