我有一个文件夹,其中包含按以下方式命名的 .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/