文字替换

时间:2013-03-08 22:20:22

标签: bash

我有一个foo001.h21.tif形式的文件列表,我需要重命名。我知道如何替换文件名末尾的strip,但不是开头。我基本上需要将其删除,以便将其保存为001.h21.tif。通常我会使用:

for i in *.tif; do mv $i ${i%%.tif}; done

捕获.tif之前的所有内容。有人可以帮我弄清楚如何采取相反的方式吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

%%%后缀是###对前缀的后缀。在您的情况下,您可以写:

for filename in foo*.tif; do mv "$filename" "${filename#foo}"; done

请参阅§3.5.3 "Shell Parameter Expansion" in the Bash Reference Manual