【发布时间】:2021-07-03 02:47:47
【问题描述】:
我正在尝试从文件名和目录中删除一组字符,例如单引号 (') 和空格。例如,我有:
目录I'm confused,其中包含文件you're right
到目前为止,我已经能够创建一个简短的脚本:
#!/bin/sh
for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done
for f in *; do mv "$f" `echo $f | tr -d \'`; done
按照预期将目录重命名为Im_confused。目录中的文件当然不受影响。
如何替换和删除子目录中的字符?
期待听到您的建议!
【问题讨论】:
-
你到底卡在哪里了? 1、2 还是 3?
-
我必须从 1 开始。我只从那个简短的脚本开始,然后调查/阅读如何定义目录深度,但没有找到解决方案。
-
您的问题并不清楚。我建议您编辑您的问题,以便清楚您在问什么(递归遍历与您对找到的条目实际执行的操作无关)您是否考虑使用
find命令进行递归?跨度> -
我冒昧地将您的 bash 标签替换为 shell 标签,因为您的问题与 POSIX shell 相关,而不是 bash。
-
我的第一个想法是通过使用 posix shell 和我被带到建议这种语法的方向来保持它更加通用。当然,我愿意接受指向其他方式的建议。
标签: bash replace rename filenames script