【发布时间】:2017-10-31 16:48:14
【问题描述】:
我在 bash 中有一个这样的文件名列表
UTSHoS10_Other_CAAGCC-TTAGGA_R_160418.R1.fq.gz
UTSHoS10_Other_CAAGCC-TTAGGA_R_160418.R2.fq.gz
UTSHoS11_Other_AGGCCT-TTAGGA_R_160418.R2.fq.gz
UTSHoS11_Other_AGGCCT-TTAGGA_R_160418.R2.fq.gz
UTSHoS12_Other_GGCAAG-TTAGGA_R_160418.R1.fq.gz
UTSHoS12_Other_GGCAAG-TTAGGA_R_160418.R2.fq.gz
我希望它们看起来像这样
UTSHoS10_R1.fq.gz
UTSHoS10_R2.fq.gz
UTSHoS11_R1.fq.gz
UTSHoS11_R2.fq.gz
UTSHoS12_R1.fq.gz
UTSHoS12_R2.fq.gz
我没有 perl rename 命令和 sed 's/_Other*160418./_/' *.gz
没有做任何事情。我在这里尝试了其他重命名脚本,但要么没有任何反应,要么我的 shell 开始向控制台打印大量代码并冻结。
这篇文章 (Removing Middle of Filename) 类似,但是给出的答案并没有解释命令的具体部分在做什么,所以我无法将它应用于我的问题。
【问题讨论】:
-
请注意,sed 将在提供的文件的 contents 上运行,而不是它们的名称。这就是为什么你的 sed 命令什么都不做的原因。
-
请允许我给你一个标准的建议给新手:如果一个答案解决了你的问题,请点击它旁边的大复选标记 (✓) 接受它,也可以选择给它投票(up - 投票需要 15 个或更多声望点)。如果您发现其他答案有帮助,请给他们投票。接受(您将获得 2 个声望点)和投票有助于未来的读者。请参阅the relevant help-center article。如果您的问题尚未得到完全解答,请提供反馈或self-answer。