regex - 将包含子字符串 'foo' 的文件重命名为 'bar'

标签 regex linux shell unix command-line

我想重命名所有包含子字符串“foo”的文件,将其替换为给定文件夹中的“bar”。我该如何完成此操作?

更新:

for i in ./*foo*; do mv "$i" "${i//foo/bar}";done 

有效!!!

最佳答案

如果你有 perl 附带的 rename(1)(Debian 提供),你可以使用:

cd /path/to/directory
rename 's/foo/bar/g' *

如果你有其他的rename(1)(我在Red Hat Enterprise Linux和其他一些发行版中看到过,它来自util-linux),你可以试试:

cd /path/to/directory
rename foo bar *foo*

您可以通过尝试 rename -V 检查您拥有的 rename 版本。如果它不能识别标志,那就是 perl 版本。如果它打印版本信息,则它是另一个版本。

关于regex - 将包含子字符串 'foo' 的文件重命名为 'bar',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14999256/

相关文章:

arrays - 标记包含 FILTER 列表中的单词的单元格

javascript - 使用 Regex 将 "margin"替换为 HTML 标记内的填充

linux - 内核-网络, "private"结构的作用

linux - coursier 设置后找不到命令 'scala'

c - 执行外部命令

c - C-如何解析反斜杠字符

macos - 如何使shell脚本全局化?

c++ - 使用正则表达式为每个连续的大写字符附加一个 '.'

java正则表达式从带有日期的较大字符串中排除特定权重

bash - 压缩通过 SSH 连接到另一台机器的 Mysqldump