如何快速重命名文件夹中的一堆文件

发布于 2024-08-19 04:31:05 字数 164 浏览 2 评论 0原文

我有一堆名为“something_12345.doc”的文件(任何 5 位数字,不一定是 12345)。我需要将它们全部重命名为“something.doc”。这是一个 Unix 文件系统,我怀疑有一种方法可以只用一个命令来做到这一点......任何 Unix 正则表达式大师都可以帮忙吗?

谢谢!

I have a bunch of files that are named 'something_12345.doc' (any 5-digit number, not necessarily 12345). I need to rename them all to just 'something.doc'. This is a Unix filesystem, and I suspect there's a way to do this with just one command... Can any Unix regular expressions guru help?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

深海蓝天 2024-08-26 04:31:05

@OP,shell 已经为您扩展了您的模式,在您的 mv 语句中,您不必再次指定 5 位数字的模式。

for file in *_[0-9][0-9][0-9][0-9][0-9].doc
do
  echo mv "$file" "${file%_*}.doc"
done

@OP, the shell has already expanding your pattern for you, there in your mv statement, you don't have to specify the pattern for 5 digits again.

for file in *_[0-9][0-9][0-9][0-9][0-9].doc
do
  echo mv "$file" "${file%_*}.doc"
done
陈甜 2024-08-26 04:31:05

重命名 's/_[0-9][0-9][0-9][0-9][0-9]//' *.doc

rename 's/_[0-9][0-9][0-9][0-9][0-9]//' *.doc

青朷 2024-08-26 04:31:05

使用sed

ls *.doc | sed 's:\([^0-9_]\)[0-9_][0-9_]*\.doc:$(mv & \1.doc)' | /bin/bash

use sed

ls *.doc | sed 's:\([^0-9_]\)[0-9_][0-9_]*\.doc:$(mv & \1.doc)' | /bin/bash
不语却知心 2024-08-26 04:31:05

是的,rename 采用 Perl 风格的正则表达式。执行man rename

Yes, rename takes perl style regular expressions. Do a man rename.

深白境迁sunset 2024-08-26 04:31:05

在 FreeBSD 上,您可能对 sysutils/renameutils 端口感兴趣。命令 qmv 打开 $EDITOR 并允许您在相当舒适的环境中指定所有文件重命名。我个人更喜欢qmv -fdo(单列)格式。

On FreeBSD, you might be interested in the sysutils/renameutils port. The command qmv opens your $EDITOR and allows you to specify all file renames in a reasonably comfortable environment. I personally prefer the qmv -fdo (single column) format.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文