Linux
如何批量重命名文件以刪除副檔名之前的多餘空格
我有一堆文件的文件名遵循模式’filename.ext’。例如:
filename .ext
我想重命名所有這些以刪除 .ext 之前的空格。例如:
filename.ext
我可以找到他們都使用
find * -type f -name'* .*'
但是我怎樣才能重命名所有這些文件?
創建一個名為“renamethis.sh”的文件。它的內容應該是:
#!/bin/bash mv "$1" "$(echo $1 | sed 's/ \././')"
設置可執行位:
chmod a+x renamethis.sh
. 然後,執行類似:
find /path/to/dir -name '* .*' -type f -print0 | xargs -0L 1 /path/to/renamethis.sh
YMMV,不保證明示或暗示等。
FWIW,空間使這變得奇怪;只要文件名中沒有其他奇怪的字元,就可以使用這種方法。如果你這樣做了,你可能想考慮一下 Perl 或 PHP 中的 scandir/readdir 循環,但上面的腳本是第一個想到的。