我有一个文件列表。他们遵循以下模式:_000n_NAME.PNG(文件编号为n)
在终端(Linux或Mac OS)中,是否可以在我的所有文件的单个命令中删除“ 000n ”?
答案 0 :(得分:2)
Sed可以完成这项工作:
sed 's/^_[0-9]*\(_.*\)$/_\1/'
如果你想剥离下划线(数字之前和之后):
sed 's/^_[0-9]*_\(.*\)$/\1/'
完整脚本:
while read f; do
mv "$f" $(echo "$f"|sed 's#^.*_[0-9]*_\(.*\)$#\1#')
done < <(find . -name "_0*_NAME.PNG")
答案 1 :(得分:2)
您可以使用:
find . -iname '_000n*.png' | sed -e 's/\(_000n_\(.*.png\)\)/\1 \2/g' | xargs -n 2 mv
使用_000n_toto1.png
,_000n_toto2.png
和文件夹