【发布时间】:2015-09-29 08:37:50
【问题描述】:
我正在将大量 Mac 数据从用户传输到 Windows 机器,并试图删除所有非法 Windows 字符。我在另一篇文章中使用了以下内容,但这不处理空格或 ( 在 mac 数据上。
find . -name "*[<>:\\|?*]*" -exec bash -c 'x="{}"; y=$(sed "s/[<>:\\|?*]\+/- /g" <<< "$x") && mv "$x" "$y" ' \;
所以我在意外标记 `(' 括号附近出现语法错误
对于那些有空格的人来说,没有这样的文件或目录。
【问题讨论】:
-
您的文件名中可能包含
"。尝试在 bash 脚本中添加set -x;。 -
我有带空格的文件名和带括号的文件名,这些都是导致问题的原因,我不想删除空格或括号,只是窗口不喜欢的字符
标签: macos bash unix scripting find