Bash:批量重命名附加文件扩展名

时间:2015-09-15 22:09:11

标签: regex bash csv terminal

我有一堆.csv格式的温度记录器数据文件。专有的temp-logger软件使用奇怪的无用名称保存它们。我想按序列号(S / N)命名文件。可以在每个文件中找到S / N(在几个地方)。

因此,我需要提取S / N并将文件名更改为{S / N} .csv。

我几乎就在那里,但无法弄清楚如何获得" .csv"文件扩展名到最后。

这是我的代码:

sub robust_accept {
    my $server = shift;
    for (;;) {
        my $client = $server->accept();
        return $client if $client;
        warn "syserror: $!" if !$!{EINTR};
    }
}

while (my $client = robust_accept($server)) {
   ...
}

注意" cut"和#34;头"命令是从正则表达式返回中获取S / N编号所必需的,并且只需要一个(在文件中多次列出S / N)。

如果有人有更优雅的解决方案,我很乐意看到它。我真正需要的只是得到那个" .csv"到我的新文件名的末尾。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用xargs执行此操作,但跳过它并直接致电mv更为简单。 (无论如何,您每次调用只会重命名一个文件。)

xargs