我一直在寻找如何在 unix 文件名中使用 {} 功能。例如,我有一个目录,其中包含名为 ID# 的子目录。每个子目录都有一个录制的音频文件,命名为特定的测试问题 ID#。以下命令:
for file in */1-01*; do echo "$file"; done
将列出当前目录的每个子目录中的音频文件的名称。这样做会给我一个清单:
809043250/1-01-20131.wav
813777079/1-01-20131.wav
817786199/1-01-20131.wav
827832538/1-01-20131.wav
834820477/1-01-20131.wav
我想将上述每个 .wav 文件重命名为不同的 ID#,所以最终应该是这样的:
809043250/5001.wav
813777079/5001.wav
817786199/5001.wav
827832538/5001.wav
834820477/5001.wav
${file/firstOccurance/replaceWith}
那么,如果我想使用mv
命令来保留此人的 ID#(809043250、813777079 等)和第一个/
但剥离1-01-20131.wav
并粘贴,我该如何使用该符号5001.wav
?
我不知道如何在谷歌上搜索这个。它被称为正则表达式吗(我不这么认为......)?大括号符号?文件名模式?有谁知道这些的一个很好的解释?
谢谢!