여러 파일이 포함된 디렉토리가 있습니다.
예를 들어:
ExperimentA_Rep1.bed
ExperimentA_Rep2.bed
ExperimentA_Rep3.bed
ExperimentB_Rep1.bed
ExperimentD_Rep1.bed
ExperimentC_Rep1.bed
ExperimentC_Rep2.bed
. . .
ExperimentZ_Rep5.bed
디렉터리에서 파일 이름을 검색하고 동일한 실험의 파일을 연결하지만 다른 복제물을 새 파일로 연결해야 합니다.
즉,cat ExperimentA_Rep1.bed ExperimentA_Rep2.bed > ExperimentA_merged.bed
하지만 하드코딩할 수는 없습니다. 실험 데이터세트에서 작동해야 하기 때문입니다.
Python 스크립트를 실행하면 문제가 없습니다.
답변1
다음은 파일 이름의 Rep 부분이 1부터 순차적으로 번호가 매겨져 있다고 가정합니다(즉, Rep1도 없으면 Rep2 또는 Rep3이 없음). 이는 "Rep1" 파일의 존재를 사용하여 특정 Experiment* 파일 시리즈에 대해 cat을 실행할지 여부를 결정합니다... 이는 ExperimentA* .. ExperimentZ* 시퀀스에서 일부 파일이 누락된 경우에만 필요합니다. 이것이 가능하지 않다면 [ -e Experiment${f}_Rep1.bed ] &&
캣라인에서 제거하십시오.
for f in {A..Z} ; do
[ -e Experiment${f}_Rep1.bed ] && cat Experiment${f}_Rep*.bed > Experiment${f}_merged.bed
done