Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用bash/terminal上的其他字符串替换所有文件名中的字符串_Regex_Bash_Macos - Fatal编程技术网

Regex 用bash/terminal上的其他字符串替换所有文件名中的字符串

Regex 用bash/terminal上的其他字符串替换所有文件名中的字符串,regex,bash,macos,Regex,Bash,Macos,我正在尝试重命名所有与DEV有SRE的文件,并出现上述错误。如果出现错误,请 在shell中运行此命令brew安装重命名 再次执行命令 可以尝试重命名's/sre/dev/g'*.sh 仅当文件名包含多个sre 要在实际更改文件名之前执行测试,请使用-n标志: UserOnMac$ rename 's/sre/dev' *.sh rename: error: unrecognized arguments: ngn-sre-guava-run-kops-create.sh ngn-sre-gua

我正在尝试重命名所有与DEV有SRE的文件,并出现上述错误。

如果出现错误,请 在shell中运行此命令
brew安装重命名
再次执行命令

可以尝试重命名's/sre/dev/g'*.sh

仅当文件名包含多个
sre

要在实际更改文件名之前执行测试,请使用-n标志:

UserOnMac$ rename 's/sre/dev' *.sh

rename: error: unrecognized arguments: ngn-sre-guava-run-kops-create.sh ngn-sre-guava-run-kops-delete.sh ngn-sre-guava-run-kops-replace.sh ngn-sre-guava-run-kops-update.sh ngn-sre-guava-run-kops-validate.sh
UserOnMac$
那么:

user/> rename -n 's/sre/dev/g' *.sh
rename([Anyword]sre.sh, [Anyword]dev.sh)

您可以使用
大括号扩展
在任何命令中使用{OLD,NEW}替换。

重命名
不是标准的MacOS命令,您必须从第三方安装它。编程问题也是如此,而不是关于使用或配置Unix及其应用程序的问题。SuperUser.com或unix.stackexchange.com是回答类似问题的更好的地方。哦,我明白了。谢谢,我该如何结束我的问题?点击“标志”并要求版主移动它。错误消息是抱怨文件名参数。
s//
命令中的错误真的会导致这种情况吗?只有当文件名包含多个需要替换的
sre
时,才需要使用
g
修饰符,但情况并非如此。@Barmar我知道使用
g
和类似于将所有
sre
替换为
dev
。谢谢你告诉我的
user@MacBook ~/test> touch file_SRE.txt
user@MacBook ~/test> ls
file_SRE.txt
user@MacBook ~/test> mv -v file_{SRE,DEV}.txt
file_SRE.txt -> file-DEV.txt