Linux

無法在 Linux 上刪除文件名中的逗號

  • March 9, 2021

我在終端文件夾中有名為“數據”的文件夾。data 中的某些文件名中有一個“,”。我可以列出它們

$ cd data
$ ls -i |grep -E '\,'

但我不知道如何從這些文件名中刪除“,”。根據我的研究,我嘗試了類似的方法grep -E '\,' | sed ',',但沒有奏效。如果我不能從文件文件名中刪除逗號,我願意刪除這些文件,但我不能在終端文件夾或使用 rm 的命令行刪除它們(它說沒有這樣的文件或目錄)。

使用 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

這將破壞任何已經存在的目標文件名。

引用自:https://unix.stackexchange.com/questions/516786