使用 sed 批量重命名目录中的文件

使用 sed 批量重命名目录中的文件

我运行了一个脚本,该脚本在目录中生成了大约 10k 个文件。我刚刚发现该脚本中有一个错误,导致某些文件名带有回车符(可能是 '\n' 字符)。

我想运行 sed 命令来从文件名中删除回车符。

有人知道要将哪些参数传递给 sed 才能按照所述方式清理文件名吗?

我在 Linux(Ubuntu)上运行

更新

导致文件名“拆分”到多行的字符似乎是 CR(回车符),而不是“\n”。文件名显示在文本编辑器的标题中,文件名拆分的位置显示为 %0D。所以我需要从文件名中删除 CR 字符。

答案1

尝试rename

find /path/to/dir -exec rename -n 's/\n/_/' {} \+

删除-n以实际重命名文件。

相关内容