在 Unix 终端中批量重命名文件
Bulk rename files in Unix Terminal
我在一个文件夹中有大约 80 个文件,它们都遵循我需要重命名的相同命名结构。如果我可以用 _ 和 ?然后它应该将文件名分解为我要查找的内容。以下是当前文件名和新文件名的示例。关于如何执行此操作的任何建议?我尝试了一些在线教程,但 none 的教程按预期工作。
当前文件名:
abcd_This 是我的文件 name.pdf?xyz
新文件名:
这是我的文件 name.pdf
用 bash 试试这个:
for f in *; do g="${f#*_}"; h="${g%\?*}"; echo "$f -> $g -> $h"; done
${var#*motif} 删除var content左边的最小motif
${var%motif*}删除var content右边的最小motif
之前使用反斜杠?因为它是 UNIX shell 下的特殊字符
要最大化主题,请使用## 或 %% 而不是 # 和 %。
我在一个文件夹中有大约 80 个文件,它们都遵循我需要重命名的相同命名结构。如果我可以用 _ 和 ?然后它应该将文件名分解为我要查找的内容。以下是当前文件名和新文件名的示例。关于如何执行此操作的任何建议?我尝试了一些在线教程,但 none 的教程按预期工作。
当前文件名: abcd_This 是我的文件 name.pdf?xyz
新文件名: 这是我的文件 name.pdf
用 bash 试试这个:
for f in *; do g="${f#*_}"; h="${g%\?*}"; echo "$f -> $g -> $h"; done
${var#*motif} 删除var content左边的最小motif
${var%motif*}删除var content右边的最小motif
之前使用反斜杠?因为它是 UNIX shell 下的特殊字符
要最大化主题,请使用## 或 %% 而不是 # 和 %。