当前位置: 首页 > 面试题库 >

Bash脚本删除目录中多个文件名末尾的“ x”个字符?

张建华
2023-03-14
问题内容

我在目录(/path/to/local)中有文件名列表。我想从所有这些文件名中删除一定数量的字符。

文件名示例:

iso1111_plane001_00321.moc1
iso1111_plane002_00321.moc1
iso2222_plane001_00123.moc1

我希望在每个文件名中删除文件扩展名前的最后5个字符。

例如:

iso1111_plane001_.moc1
iso1111_plane002_.moc1
iso2222_plane001_.moc1

我相信可以使用完成此操作sed,但是我无法确定确切的编码。就像是…

for filename in /path/to/local/*.moc1; do
    mv $filname $(echo $filename | sed -e 's/.....^//');
done

…但是那行不通。抱歉,如果我sed选择了这些选项,则我对此没有太多经验。


问题答案:
 mv $filname $(echo $filename | sed -e 's/.....\.moc1$//');

要么

 echo ${filename%%?????.moc1}.moc1

%%是bash内部操作员…



 类似资料:
  • 所以我重新下载了我的google drive备份,我注意到在每个文件中,不管在我的目录和或子目录中有多深,它的名称中都有一个“(1)”,我想要删除这个。Iv获得但这只适用于这个目录,我需要深入得多。提前道谢。 更新:get到“get-childitem-recurse rename-item-newname{$_.name-replace”(1)“,”“}”但它引发错误:rename-item:源

  • 问题内容: 问题: 如何删除目录中除最新3个文件以外的所有文件? 查找最新的3个文件很简单: 但是我需要找到除最新的3个文件之外的所有文件。我该怎么做,以及如何在同一行中删除这些文件而又不会造成不必要的for循环? 我为此使用Debian Wheezy和bash脚本。 问题答案: 这将列出所有文件,但最新的三个除外: 这将删除这些文件: 这还将列出点文件: 并使用dotfiles删除: 但请注意:

  • 问题内容: 在Linux中,我有一个很大的文件,文件末尾附加了一些无关的信息。例如,假设我知道一个1.6GB文件的末尾有314个字节的无关数据。 当然,将更多数据添加到文件末尾是非常容易和有效的,但是我可以怎么做才能删除它,而不必将该文件的第一部分复制到另一个文件中(或覆盖所述文件)? 编辑 我在C中看到了一些很好的建议。我希望从命令行编写脚本,但是如果没有,我会比C更倾向于在python中进行编

  • 目前我正在测试PhpStorm IDE。它真的很棒,除了一个功能。它不会从文件末尾删除空行。现在删除不需要的空格,但末尾的空行不会删除。 这对我来说真的很烦人。我能改变这种行为吗?

  • 我有一个熊猫数据帧,其中有一列文件列表 我想从中的每个条目中删除文件扩展名。如何完成此操作? 我尝试了: 但是当我用<code>df查看列条目时。head(),没有任何变化。 如何做到这一点?

  • 问题内容: 我有这样的事情: 我想将这些文件重命名为以下形式: 在同一目录中。 我想我可以使用,但是我不知道如何在文件夹和文件重命名的同时使用它。 问题答案: 可以使用bash for loop和: 请注意,如果目录名称包含空格,则上述解决方案将不起作用。相关链接。 另一种基于注释的解决方案(也适用于名称中也包含空格的目录):