如何保留只有 20 个字符的文件名和文件扩展名 .txt

use*_*459 5 filenames rename

我有一堆这样的文件:

hhsLog.8020.20200330}1585594173}0}coll_DefaultCollectorGroup_1_158594166_132642}1036942}0}0
Run Code Online (Sandbox Code Playgroud)

我只想保留前 20 个字符并添加.txt扩展名。所以最后我应该有一个文件名:

hhsLog.8020.20200330.txt
Run Code Online (Sandbox Code Playgroud)

我同时在 Fedora 和 Solaris 上工作。

ter*_*don 11

您可以使用以下 shell 循环轻松完成此操作bash

cd /path/to/files/;
for file in *; do
    echo mv -i -- "$file" "${file:0:20}.txt"
done
Run Code Online (Sandbox Code Playgroud)

一旦您对满足您的需求感到满意,请删除 echo 以实际重命名文件:

 cd /path/to/files/;
 for file in *; do
    mv -i -- "$file" "${file:0:20}.txt"
done
Run Code Online (Sandbox Code Playgroud)

如果新名称之一已经存在,-imv在覆盖之前询问。

  • `$file` 将包括其路径 (`/path/to/files/`),这将错误地计入 20 个字符。 (3认同)