atl*_*ren 6 zsh rename replace
在 macOS 上使用 zmv,我想用下划线 (_) 替换文件名中的双引号 (")。但是,我无法让 zshexpn 正确隔离 ". 我应该使用一些神奇的 zsh/zmv/zshexpn 选项吗?
% zmv -n '(**/)(*)' '$1${(S)2//"/_}'
zmv: syntax error in replacement
% zmv -n '(**/)(*)' '$1${(S)2//\"/_}'
zmv: syntax error in replacement`
% zmv -n '(**/)(*)' '$1${(Sp)2//\"/_}'
zmv: syntax error in replacement
Run Code Online (Sandbox Code Playgroud)
(这是更大的替换非法字符活动的一部分。我希望使用一个 zmv 表达式来完成整个事情。)
感谢您的任何帮助。
小智 2
在我的测试中zmv '* *' '$f:gs/"/_'效果很好。
https://zsh.sourceforge.io/Intro/intro_2.html是对文件通配符的非常枯燥的解释。与正则表达式不同,但足够接近以至于令人困惑。