我正在尝试使用“mv”重命名,因为“重命名”命令在我的 Mac 终端中不起作用。
我有一堆名为
DTM001_ACGGT-TTAGGC.fq
DTM156_GGTTG-ACAGTG.fq
Run Code Online (Sandbox Code Playgroud)
...ETC
我希望将它们重命名为
DTM001.fq
DTM156.fq
Run Code Online (Sandbox Code Playgroud)
我想更简单的方法是删除文件扩展名前的最后 13 个字符?
我尝试了这些链接:
但没有一个对我有用,也许是因为我不完全理解如何操作我的具体案例的答案,或者某些答案使用我无法访问的“重命名”命令。
小智 5
macOS 终端只是一个称为 shell 的交互式程序的接口。默认 shell 的名称是bash.
您正在寻找的称为 shell 脚本或 bash 脚本,用于重命名文件。
你提到的问题已经有答案了。重申一下:
cd directory_with_the_files
for file in *.fq; do
mv -vn "${file}" "${file%_*}.fq"
done
Run Code Online (Sandbox Code Playgroud)
您可以在命令行中输入所有内容,或者将其放入文件中并使用以下命令执行:
bash file_containing_the_commands
Run Code Online (Sandbox Code Playgroud)
这将遍历.fq当前目录中的所有文件,并将它们重命名为您想要的名称。选项-v只是mv意味着在重命名发生时打印重命名(对于知道它正在做某事很有用),而标志-n意味着不要意外覆盖任何文件(以防您输入错误或遇到重复的数字)。
所有的魔法都发生在 中${file%_*}.fq,它说“删除第一个之后的所有内容_并添加.fq后面的”。这称为“shell 参数扩展”,您可以在Bash 参考手册中阅读更多相关信息。它的措辞有点迟钝,但以下是与这个特定用例相关的部分:
${参数%单词}
该单词被扩展以产生一个模式,就像文件名扩展一样。如果模式与parameter扩展值的尾部部分匹配,则扩展的结果是删除了最短匹配模式(“%”大小写)的parameter值。
| 归档时间: |
|
| 查看次数: |
6581 次 |
| 最近记录: |