我有很多名为activity_unpublish_39x39.png
,abc_29x29.png
等的文件。
我想将名称转换为activity_unpublish.png
(删除_39x39
)
和abc.png
(删除_29x29
)。
谁能告诉我我该如何实现?
在Mac OS X上工作会更好。
最佳答案
以下小shell脚本应在Linux和Mac OS上都可以使用。请注意,它正在当前文件夹中工作,此外,您还必须根据需要更改pat
和suf
(此处suf="\.png"
和pat="_[0-9]+x[0-9]+$suf"
可以与您的给定示例一起使用)。
它使用sed
和-E
,后者在manpage中未记录。这是Mac OS中的选项,在Linux中称为-r
。在Linux中,它也存在but as said not documented:
#!/bin/sh
suf="\.png"
pat="_[0-9]+x[0-9]+$suf"
for f in *; do
if [[ $f =~ $pat ]]; then
newName=$(echo "$f" | sed -E "s/$pat/$suf/g")
mv "$f" "$newName"
fi
done