2013-05-07 2 views
1

문제점은 필자가 작성한 bash 스크립트에서 발생합니다. 나는 생물 정보학 사용을위한 정렬자인 STAR라는 도구를위한 입력 파일을 명시 할 필요가있다. 플래그 --readFilesIn이 있습니다. 필자의 경우이 파일은 쉼표로 구분 된 여러 파일 (fastq 파일)의 두 세트를 취하고 두 세트는 공백으로 구분합니다. fastq 파일의 각 세트는 숫자에 다른 이름이 나는 $ 파일이 fastq 파일을 포함하는 디렉토리이고, 아래의 사용을 생각했기 때문에bash 스크립트에서 입력 파일을 지정하십시오.

STAR [OPTIONS] --readFilesIn fq_r1_1,fq_r1_2,fq_r1_3 fq_r2_1,fq_r2_2,fq_r2_3 

: 입력처럼 보인다.

dir $files | cut -d " " -f 9 | sed 's/\s *//g' | grep _r1_ | paste -sd "," 

올바른 형식을 생성하지만 정렬 기가 입력을 허용하지 않습니다. 나는 파일 쓰기를 시도해 보았지만이 방법을 쓰지는 않았다. 이 인스턴스에서 bash의 규칙은 무엇입니까?

미리 감사드립니다.

브루스.

정렬기를 허용하려면 어떻게해야합니까? 그것은 나의 첫 번째 예에서와 같이 그것을 원합니다.

+0

시도해 보셨습니까? STAR [OPTIONS] - readFilesIn fq_r1 * fq_r2 * ' – skip

+0

와일드 카드를 사용해 본 결과 세그먼테이션 오류가 발생합니다. 아마도 입력 형식이 잘못되었을 수 있습니다. 아래 작품, 어쨌든 도와 줘서 고마워, 정말 고마워. – bruce01

답변

3

다음과 같이 작동합니까?

group1=(fq_r1_*) 
group2=(fq_r2_*) 
(IFS=,; STAR [OPTIONS] --readFilesIn "${group1[*]}" "${group2[*]}") 

(있는 경우 IFS의, 현재의 값을 보존 할 필요성을 방지하기 위해 서브 쉘 내부의 명령을 실행).

+0

잘 작동합니다. 도움을 많이 주셔서 감사합니다! – bruce01

관련 문제