linux - 使用具有随机名称的 png 帧生成视频 - Linux

标签 linux video command-line

我有一个文件夹,其中包含按以下方式命名的 .png 图片:

name_number.png

但是这个数字是以科学的方式书写的(1, 1e1, 1e2)。

我想从命令行创建一个视频,它是所有这些的组合。

Linux 中是否有考虑科学名称的命令?我应该用命令重命名它们然后生成视频吗?

最佳答案

使用 Ruby,你可以这样解决这个问题:

def rename_sci(name)
  name.sub(/(\d+e\d+)/) do |m|
    '%.0f' % $1.to_f
  end
end

%w[
  test_1e1.png
  test_1e2.png
].each do |name|
  puts '%s -> %s' % [
    name,
    rename_sci(name)
  ]
end

在哪里获得如下输出:

test_1e1.png -> test_10.png
test_1e2.png -> test_100.png

现在您可以非常轻松地制作一个实际的重命名工具:

require 'optparse'

def rename_sci(name)
  name.sub(/([0-9]+e[0-9]+)/) do |m|
    '%.0f' % $1.to_f
  end
end

options = {
  dry_run: false
}

# Use OptionParser to add --dry-run option for testing
program = OptionParser.new do |op|
  op.on('-y', '--dry-run', 'Dry run, no renaming actually occurs') do
    options[:dry_run] = true
  end
end

program.parse!(ARGV).each do |path|
  new_path = rename_sci(path)

  next if (path == new_path)

  puts '%s -> %s' % [ path, new_path ]

  next if (options[:dry_run])

  File.rename(path, new_path)
end

然后你可以像这样运行这个脚本:

rename_sci -y *.png

如果一切看起来都不错,请拉动 -y 标志并让它撕裂!一如既往,做好备份,以防出现严重问题。

关于linux - 使用具有随机名称的 png 帧生成视频 - Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46205316/

相关文章:

linux - 在 linux 命令行中更改文本文件

linux - 如何找到文件的所有符号链接(symbolic link)?

linux - 识别前导行空间 - shell 脚本

c++ - 添加增强型视频渲染器流

command-line - Silver-searcher 是否能够从文件中获取 PATTERN?

windows - 使用标准 Windows 命令行/批处理命令模拟 unix 'cut'

bash 脚本中的 Linux sed

linux - Hudson 如何在 Linux 上独立工作?

javascript - 使用不同的变量名

android - 使用 ffmpeg 将图像即时编码为 mp4 视频