微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在不使用重命名命令的情况下递归搜索目录并从文件名中删除开/关括号?

如何解决如何在不使用重命名命令的情况下递归搜索目录并从文件名中删除开/关括号?

我有一个问题,我需要从磁盘上的每个文件名中删除所有打开的 [ 和关闭 ] 括号。该解决方案必须适用于没有 rename 命令可用的系统。

对于一个看起来像这样的示例文件结构:

/file [name].ext
/test[file].example
/nobracket.nrml
/path/to/subdirectory/deep [bracket].test
/[test] brackets with - spaces.sample

我需要结果如下:

/file name.ext
/testfile.example
/no bracket.nrml
/path/to/subdirectory/deep bracket.test
/test brackets with - spaces.sample

我尝试过的 2 种方法中的 1 种:

for i in `find . -type f -name '*[*'` ; do mv $i `echo $i | sed 's/\[//g'` ; done

它挂在带有空格的文件上,除了不执行重命名之外,还提供以下输出

mv: can't rename './[test]': No such file or directory
mv: can't rename 'brackets': No such file or directory
mv: can't rename 'with': No such file or directory
mv: can't rename '-': No such file or directory
mv: can't rename 'spaces.sample': No such file or directory

我尝试过的 2 种方法中的 2 种:

find . -type f -name '*[*' -exec sed 's/[][]//g' {} \+

除了不重命名文件之外,这种方法还会将奇数输出返回到标准输出,如下所示:

ȏkgn7Y{/        fpu(?{yw-M^?}r& @n
        cȌ      ; @vk@ș<1㙀9'{ݥfn7y`L}|t;&! x|}{1r       '@r     '@r     '@r     '@r     '@r     '@r     '@r     '@r{=?>hO)& @N @N @N @N9>wx/& @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N @N89W=CZzǏhjss6ju@7W?Gub

任何有关如何解决此问题的见解将不胜感激! One-liners 是理想的,但对其他解决方案持开放态度。

解决方法

由于您的文件名有空格,您需要引用命令替换。否则,它将被解析为多个参数。

此外,您对 curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}' 的输出也有同样的问题,它被 find 在空格处拆分为单独的名称。将其输送到 for 循环而不是使用 while read

没有必要使用 for,因为 sed 有一个内置的替换运算符。此运算符采用通配符模式进行查找,因此您可以使用 bash 来匹配任一方括号。

[\[\]]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?