通过修剪名称末尾的“\n”来重命名文件

use*_*084 3 linux bash

我制作了一个 python 脚本来解析大量数据并保存结果,最终生成了约 162 个文件。该脚本将这些文件命名为Parsed_NameOfOriginal\n. 请注意\n最后的 不是有意的,而是由我的脚本以某种方式添加的。由于生成这些结果需要花费很多时间,因此我不想再次运行固定脚本。

有没有办法使用 Linux 终端或 shell 脚本以相同的名称重命名目录中的每个文件,但\n最后修剪它?

Parsed_ResultA\n变为Parsed_ResultA

注意:这是添加的新行字符,而不是文本\n

Den*_*nis 5

这应该有效:

for f in *$'\n'; do mv -i "$f" "${f%$'\n'}"; done
Run Code Online (Sandbox Code Playgroud)
  • *$'\n'扩展到以换行符结尾的所有文件名。

  • for循环遍历所有匹配的文件,并将文件名保存在变量f中。

  • ${f%$'\n'}从存储在f中的文件名中删除尾随换行符。

  • mv -i重命名文件,提示是否会覆盖任何内容。