kutlus Asked: 2019-05-03 06:53:09 +0800 CST2019-05-03 06:53:09 +0800 CST 2019-05-03 06:53:09 +0800 CST 无法在 Linux 上删除文件名中的逗号 772 我在终端文件夹中有名为“数据”的文件夹。data 中的某些文件名中有一个“,”。我可以列出它们 $ cd data $ ls -i |grep -E '\,' 但我不知道如何从这些文件名中删除“,”。根据我的研究,我尝试了类似的方法grep -E '\,' | sed ',',但没有奏效。如果我不能从文件文件名中删除逗号,我愿意删除这些文件,但我不能在终端文件夹或使用 rm 的命令行删除它们(它说没有这样的文件或目录)。 linux filenames 1 个回答 Voted Best Answer Jeff Schaller 2019-05-03T06:57:54+08:002019-05-03T06:57:54+08:00 使用 bash shell,您可以遍历所有包含逗号的文件名并重命名它们以删除所有逗号: for f in *,*; do mv -- "$f" "${f//,/}"; done 通过示例运行: $ touch foo,bar a,b,c,d $ ls a,b,c,d foo,bar 结果是: $ for f in *,*; do mv -- "$f" "${f//,/}"; done $ ls abcd foobar 这将破坏任何已经存在的目标文件名。
使用 bash shell,您可以遍历所有包含逗号的文件名并重命名它们以删除所有逗号:
通过示例运行:
结果是:
这将破坏任何已经存在的目标文件名。