Regex unix-查找并替换为正则表达式
我想查找所有包含字符串“Of”的文件,将其替换为“Of”,但在“Of”之前带有连字符的字符串除外:“-Of” 首先我有这个命令:Regex unix-查找并替换为正则表达式,regex,unix,replace,find,perl,Regex,Unix,Replace,Find,Perl,我想查找所有包含字符串“Of”的文件,将其替换为“Of”,但在“Of”之前带有连字符的字符串除外:“-Of” 首先我有这个命令: find . -depth -name "* Of *" -exec bash -c 'for f; do base=${f##*/}; mv -- "$f" "${f%/*}/${base// Of / of }"; done' _ {} + 但是我想用正则表达式来表示“-Of”排除 我该怎么做 我对sed regex感到困惑 使用 find . -regexty
find . -depth -name "* Of *" -exec bash -c 'for f; do base=${f##*/}; mv -- "$f" "${f%/*}/${base// Of / of }"; done' _ {} +
但是我想用正则表达式来表示“-Of”排除
我该怎么做
我对sed regex感到困惑
使用
find . -regextype sed -regex '.* Of *'
它只找到以Of结尾的路径
帕特里克试着用以下方法来做:
你得到的结果是
.../rename: Perl script, ASCII text executable
那么这似乎是正确的工具=)
如果不是,将其作为Debian
和类似Ubuntu
的衍生工具的默认值(通常已经是这种情况):
$ sudo update-alternatives --set rename /path/to/rename
(将/path/to/rename
替换为perl的rename
命令的路径
如果没有此命令,请搜索软件包管理器以安装它,或者
最后但并非最不重要的一点是,这个工具最初是由Perl的父亲Larry Wall编写的。对不起,我应该把rename-n放在哪里呢|(?在一个shell中,包含文件的目录再次出错,您完全弄丢了我。感谢您的尝试。它不起作用。我得到了这个:rename:unknown选项--n。如果我删除了-n:rename:not ough arguments如果您没有正确的rename命令,请参阅我最初的POSTPlease中的解释,有人有si吗这个问题的简单解决方案?
.../rename: Perl script, ASCII text executable
$ sudo update-alternatives --set rename /path/to/rename