我有一堆名爲'something_12345.doc'(任何5位數字,不一定是12345)的文件。我需要將它們全部重命名爲「something.doc」。這是一個Unix文件系統,我懷疑只有一個命令就可以做到這一點...任何Unix正則表達式guru都可以幫忙嗎?如何快速重命名文件夾中的一堆文件
謝謝!
我有一堆名爲'something_12345.doc'(任何5位數字,不一定是12345)的文件。我需要將它們全部重命名爲「something.doc」。這是一個Unix文件系統,我懷疑只有一個命令就可以做到這一點...任何Unix正則表達式guru都可以幫忙嗎?如何快速重命名文件夾中的一堆文件
謝謝!
rename 's/_[0-9][0-9][0-9][0-9][0-9]//' *.doc
我在FreeBSD上,因此這並不會工作。 慶典:在/ usr/local/bin中/重命名:參數列表太長 我無法弄清楚如何設置變量命名 – user261231 2010-01-28 21:34:44
想通了。 for i in [A-Za-z] * _ [0-9] [0-9] [0-9] [0-9] [0-9] .doc; do mv「$ i」「$ {i/_ [0-9] [0-9] [0-9] [0-9] [0-9]}」;完成 – user261231 2010-01-28 22:14:04
@OP,外殼已經出現在你的MV聲明擴展你的模式爲你,你不必再指定5位數字的模式。
for file in *_[0-9][0-9][0-9][0-9][0-9].doc
do
echo mv "$file" "${file%_*}.doc"
done
感謝ghostdog74和其他人! – user261231 2010-01-29 06:25:00
用sed
ls *.doc | sed 's:\([^0-9_]\)[0-9_][0-9_]*\.doc:$(mv & \1.doc)' | /bin/bash
在FreeBSD上,你可能有興趣在sysutils的/ renameutils端口。命令qmv
打開$ EDITOR並允許您在合理舒適的環境中指定所有文件重命名。我個人更喜歡qmv -fdo
(單列)格式。
你將剩下一個文件,基本上,你正在刪除N-1文件並將第N個文件複製到'something.doc' - 這是你想要的嗎? – dirkgently 2010-01-28 18:29:04
-1因爲經常問*。你應該首先在SO上進行搜索。 – bortzmeyer 2010-01-30 21:30:50