根据新旧文件名一一对应的表格批量循环修改文件名

Linux根据新旧文件名一一对应的表格批量循环修改文件名

从TCGA上下载的
①sample sheet文件包含file name,file ID 和对应sample type
②gdc download文件含有counts和FPKM的两个文件
③clinical文件:含有case submitter id和一些临床数据。这里的case id和file id不同
根据gdc download文件中manifest文件中的file ID(如0096f6b3-94f5-49d9-aa43-66d9ab6b2b5c),去sample sheet中查找该ID对应的sample ID(如TCGA-AA-3979-01A),将以file ID命名的一千多个文件全部转换成对应的以sample ID命名的文件。
即:
用shell写循环:文件重命名

思路

①将文件名作为可以被awk使用的变量,这里用了选项-v
②如果sample sheet表格中存在与旧文件名相同的,将其对应的新文件名输出为外界变量。这里用了eval命令(会首先完成命令行所有的赋值替换,然后再执行命令行)。
③mv命令完成重命名

图片: 在这里插入图片描述

代码


#!/bin/bash
  for file in `ls | grep .counts`
     do
     eval $(awk -v FILENAME="$file" -F"\t" '{if($2==FILENAME)printf("newfilename=%s\n",$7) }' ./tryname.tsv)
     mv $file $newfilename
     done

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值