我想重命名名称中包含数字的文件夹中的所有文件,例如
是
可以指定附加常量(此处为200)。
我尝试了Renaming a set of files to 001, 002, ... on Linux
中建议的内容i=200; temp=$(mktemp -p .); for file in solution_*.vtu
do
mv "$file" $temp;
mv $temp $(printf "solution_%0.3d.vtu" $i)
i = $((i+1))
done
但这对我不起作用。谢谢你的帮助!
答案 0 :(得分:0)
您可以尝试使用此命令:
find . -printf 'mv %f %f\n' | grep -v '\. \.' | sed 's/u Solution_/u Solution_2/g' | while read -r i ; do $i ; done
答案 1 :(得分:0)
如果您的Linux机器上有ruby:
#! /usr/bin/env ruby
require 'fileutils'
pattern = ARGV[0] || "*.vtu"
offset = (ARGV[1] || 200).to_i
Dir[pattern].each do |file|
id = file[/\d+/]
if id then
new_id = id.to_i + offset
new_file = file.sub(/\d+/, new_id.to_s)
puts "#{file} -> #{new_file}"
## UNCOMMENT THIS LINE IF YOU WANT TO MOVE FILES:
# FileUtils.mv file, new_file
end
end
你可以像这样使用它:
./rename_with_integer_offset.rb "*.vtu" 200
# solution_201.vtu -> solution_401.vtu
# solution_202.vtu -> solution_402.vtu