shell-按“/”切割路径
2021-03-12 本文已影响0人
MYS_bio_man
这是我写的一个运行RSeQC来进行链特异性评估的脚本,其中有一部分是按“/”切割路径来获取“*”所代表的样本名字(字符串)的操作,做个笔记记录一下,以后用的到:
for sample in $(ls /Lustre02/mrBug/00.project/30.HL/01STAR/*/Aligned.out.bam); do
# 获取路径及文件,并遍历传递给sample,则sample为一下内容
# /Lustre02/mrBug/00.project/30.HL/01STAR/A/Aligned.out.bam
# /Lustre02/mrBug/00.project/30.HL/01STAR/B/Aligned.out.bam
# /Lustre02/mrBug/00.project/30.HL/01STAR/C/Aligned.out.bam
refgeneBed12=~/database/sus_scrofa/release-92/Sus_scrofa.Sscrofa11.1.92_EsembleChrName.Bed12
bamfile=${sample}
cd /Lustre02/mrBug/00.project/30.HL/RSeQC
# 进行切割操作
# ${bamfile//\// },最后一个空格不能忘,"/"前面记得加转意符“\”
# 如果切割“,”,则写为${bamfile//,/ }
# 最外加“()”,转为list/tuple
str=(${bamfile//\// });
# 按照index进行提取元素
arr=${str[5]}; # 最后arr分别取值A B C
~/software/RSeQC-2.6.5/scripts/infer_experiment.py --input-file ${bamfile} --refgene ${refgeneBed12} -s 10000000 > ${arr}.strandInfos.txt
done
好了,就这样!!!