Replace 重命名mac终端中包含';的文件';

Replace 重命名mac终端中包含';的文件';,replace,terminal,Replace,Terminal,我正在尝试重命名包含“;”的客户端中的文件当我把它们上传到我的服务器上时,文件上传是零比特的 我正在使用下面的脚本(我有echo,以便在应用之前可以看到函数工作) 这不会重命名该文件 但如果我这样做 file in */*; do echo mv "$file" "${file/VOLVO/|}"; done; 它确实将“沃尔沃”替换为“|” 如何将“;”替换为“|”我在论坛上提出了一些建议,将“;”注释掉带“/”的 如下 以/存档;执行echo mv“$file”“${file//;/|}”

我正在尝试重命名包含“;”的客户端中的文件当我把它们上传到我的服务器上时,文件上传是零比特的

我正在使用下面的脚本(我有echo,以便在应用之前可以看到函数工作)

这不会重命名该文件

但如果我这样做

file in */*; do echo mv "$file" "${file/VOLVO/|}"; done;
它确实将“沃尔沃”替换为“|”


如何将“;”替换为“|”

我在论坛上提出了一些建议,将“;”注释掉带“/”的

如下 以/存档;执行echo mv“$file”“${file//;/|}”;完成


感谢Tim和Peter的修复

我在论坛上提出了一些建议,通过注释掉“;”来修复它带“/”的

如下 以/存档;执行echo mv“$file”“${file//;/|}”;完成


多亏了Tim和Peter的修复

我想里面有一个的<代码>用于…中的文件。。。;做回声的东西;完成?此外,还应使用
*/*\*
这样您就不会做很多冗余的
mv same
<代码>foo=b\;Recho“${foo/;/|}”在bash4(Ubuntu)中为我工作。也许可以试着引用
,以防OS X bash3不同?(正如Tim的答案所说;当他的答案出现时,他将给出
\;
语法。)此外,对于批量重命名,还有
mmv
prename
(有时称为
rename
,用perl实现)。这样,您只需要启动一个进程来执行大量的
rename
系统调用,而不是为每个重命名派生整个进程。对于shell一行程序中的一次性交互式使用,最佳选择取决于哪种方式更容易表达您想要的转换:shell文本替换或prename或mmv中的模式。谢谢。当我试图注释掉“;”时,它起了作用在/中有一个for文件;执行echo mv“$file”“${file//;/|}”;完成;我想里面有一个
for
<代码>用于…中的文件。。。;做回声的东西;完成
?此外,还应使用
*/*\*
这样您就不会做很多冗余的
mv same
<代码>foo=b\;Recho“${foo/;/|}”在bash4(Ubuntu)中为我工作。也许可以试着引用
,以防OS X bash3不同?(正如Tim的答案所说;当他的答案出现时,他将给出
\;
语法。)此外,对于批量重命名,还有
mmv
prename
(有时称为
rename
,用perl实现)。这样,您只需要启动一个进程来执行大量的
rename
系统调用,而不是为每个重命名派生整个进程。对于shell一行程序中的一次性交互式使用,最佳选择取决于哪种方式更容易表达您想要的转换:shell文本替换或prename或mmv中的模式。谢谢。当我试图注释掉“;”时,它起了作用在/中有一个for文件;执行echo mv“$file”“${file//;/|}”;完成;
file in */*; do echo mv "$file" "${file/VOLVO/|}"; done;