gpt4 book ai didi

regex - 在 Ubuntu 中使用重命名递归更改文件前缀,(正则表达式不起作用)

转载 作者:太空宇宙 更新时间:2023-11-03 17:05:04 24 4
gpt4 key购买 nike

我正在使用 ubuntu 中可用的 rename:

$ rename --version
/usr/bin/rename using File::Rename version 0.20

这是我的目录的样子:

$ tree .
.
├── awp-3
├── bar
│   └── wp-2
└── wp-foo
└── wp-1

我的目标是将所有前缀为wp-文件和文件夹重命名为static-

这是我运行的:

$ shopt -s globstar

$ rename -n 's/wp-/static-/' **
rename(awp-3, astatic-3)
rename(bar/wp-2, bar/static-2)
rename(wp-foo, static-foo)
rename(wp-foo/wp-1, static-foo/wp-1)

几乎是我想要的。文件 awp-3 不应重命名。

所以我改为这样做:

$ rename -n 's/^wp-/static-/' **
rename(wp-foo, static-foo)
rename(wp-foo/wp-1, static-foo/wp-1)

出于某种原因,这并没有改变 wp-1 或 wp-2 的文件名。

如何使用重命名将 wp-2、wp-foo 和 wp-1 更改为 static-*?

最佳答案

^ anchor 只匹配行首。我猜你想要

rename -n 's%(^|/)wp-%$1static-%' **

另一种加强这一点的方法是说 wp 必须只出现在单词边界附近。

rename -n 's/\bwp-/static-/' **

关于regex - 在 Ubuntu 中使用重命名递归更改文件前缀,(正则表达式不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54176291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com