.vcf
variants folder
IDがあるフォルダに各ファイルをmvしようとしています。 inは常にバリアントフォルダにaのIDを持ちます。で始まる行は常にのフォルダと正確に一致します。には複数のフォルダがありますが、一致するフォルダは1つしかありません。複数のIDがあるかもしれませんが。/home/cmccabe/f2
.vcf
file
$2
file
.vcf
file
R_2019
-v5.6
/home/cmccabe/f2
/home/cmccabe/f2
file
.vcf
/home/cmccabe/f1/variants
/home/cmccabe/f2
のフォルダとフォルダR_2019
の間に一致するものが見つかると、file
IDが検索さ$2
れます。その後、各ファイルは新しいサブフォルダの一致するフォルダに移動されます。実行はされますが、ファイルは移動されません。ありがとうございます:)。/home/cmccabe/f1/variants
.vcf
.vcf
/home/cmccabe/f2
variants
bash
文書/home/cmccabe/f1から
IonCode_0007 19-0004-La-Fi
IonCode_0009 19-0005-Last-Firs
IonCode_0013 190320-Control
R_2019_03_12_13_59_54_user_S5-0271-100-v5.6_xxx_xxx_xxx_xxx_xx_x_xxx
バリアントフォルダ存在する/home/cmccabe/f1
19-0004-La-Fi.vcf
19-0005-Last-Firs.vcf
190320-Control.vcf
現在の構造~の/home/cmccabe/f2
R_2019_03_12_13_59_54_user_S5-0271-100 ---parent directory ---
- bam --- sub-folder ---
- qc --- sub-folder ---
必要な構造~の/home/cmccabe/f2
R_2019_03_12_13_59_54_user_S5-0271-100 ---parent directory ---
- bam --- sub-folder ---
- qc --- sub-folder ---
- variants --- new sub-folder ---
- 19-0004-La-Fi.vcf
- 19-0005-Last-Firs.vcf
- 190320-Control.vcf
打撃の可能性
for file in /home/cmccabe/f1/variants/*.vcf ; do
# Grab file prefix
bname=$(basename $file) # strip of path
VCF="$(echo $bname|cut -d. -f1)" # remove .vcf extension
f=$(printf '%s' /home/cmccabe/f1/file/${VCF}) ## # Find matching id
FILE2=$(awk '{print $2}' $f) # set VCF lookup to column
for RDIR in /home/cmccabe/f1/file/R_2019* ; do FOLDER=${RDIR%%-v5.6*}; done ## trim R_2019 line in file from -v5.6 and store in FOLDER
if [[ $VCF = $FILE2 ]] # only execute file on match
then
mkdir -p /home/cmccabe/f2/$FOLDER/variants ## create variants sub-folder
mv /home/cmccabe/f1/file/$VCF /home/cmccabe/f2/$FOLDER/variants ## move vcf to folder
fi ## end if
done ## close loop