批量重命名:如果会linux呢?

刘小泽写于19.6.13
和花花一起回家,一起回忆了花花的童年。小学已经倒闭了,但幼儿园还在,还有好多小孩在里面玩。还看了许多有意思的路边风景,在花花家炒了第一次菜

内容很简单,题目是:

简单回顾一下

假入现在有这些双端测序文件

# 根据下面的对应关系,首先新建这些gz文件出来,然后 shell脚本改名
# 比如 SRR6269851_1.fastq.gz 改名为 P3_DCIS_Exome_1.fastq.gz
# 以此类推

Library_Name    Run

P3_DCIS_Exome    SRR6269851

P4_DCIS_Exome    SRR6269852
P1_DCIS_Exome    SRR6269853
P2_DCIS_Exome    SRR6269854

P7_DCIS_Exome    SRR6269855
P5_DCIS_Exome    SRR6269856
P8_DCIS_Exome    SRR6269857
P6_DCIS_Exome    SRR6269858
P10_DCIS_Exome    SRR6269859
P9_DCIS_Exome    SRR6269860
P3_INV_Exome    SRR6269861

P4_INV_Exome    SRR6269862
P2_INV_Exome    SRR6269863
P1_INV_Exome    SRR6269864

P7_INV_Exome    SRR6269865
P8_INV_Exome    SRR6269866

P5_INV_Exome    SRR6269867

P6_INV_Exome    SRR6269868
P9_INV_Exome    SRR6269869

P10_INV_Exome    SRR6269870
P10_Norm_Exome    SRR6269871
P9_Norm_Exome    SRR6269872

P4_Norm_Exome    SRR6269873
P3_Norm_Exome    SRR6269874
P2_Norm_Exome    SRR6269875

P1_Norm_Exome    SRR6269876

P8_Norm_Exome    SRR6269877
P7_Norm_Exome    SRR6269878
P6_Norm_Exome    SRR6269879

P5_Norm_Exome    SRR6269880

思路

方法有很多,你会怎么考虑呢?

  • 首先用touch新建,结尾的id是有顺序的
  • 复制这个library-run两列表,发现其中是有空行的,需要去掉空行和首行无用信息
  • 结合shell的数组(array)可以获得表示列的变量
  • 最后利用mv进行替换
# 首先生成数据
for i in $(seq 51 80);do touch SRR62698${i}_1.fastq.gz;done
for i in $(seq 51 80);do touch SRR62698${i}_2.fastq.gz;done
# 构建array
sed 1d lib_run.txt|sed '/^$/d' | cut -f1>lib
sed 1d lib_run.txt|sed '/^$/d' | cut -f2>run
paste lib run >lib_run
# 循环替换,一行行读取
cat lib_run| while read i
do
    lib_run=($i)
    lib=${lib_run[0]}
    run=${lib_run[1]}
    mv ${run}_1.fastq.gz ${lib}_1.fastq.gz
    mv ${run}_2.fastq.gz ${lib}_2.fastq.gz
done

这里的重点就是数组的使用,推荐阅读:shell 13问(http://wiki.jikexueyuan.com/project/13-questions-of-shell/eight.html)


欢迎关注我们的公众号~_~  
我们是两个农转生信的小硕,打造生信星球,想让它成为一个不拽术语、通俗易懂的生信知识平台。需要帮助或提出意见请后台留言或发送邮件到jieandze1314@gmail.com

Welcome to our bioinfoplanet!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容