我有一堆这样的文件:
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)
如果新名称之一已经存在,-i将mv在覆盖之前询问。