- Вы не хотите отправлять буквальные одинарные кавычки, поэтому удалите их.
- вы хотите удалить обратную косую черту, чтобы позволить Ruby оценить эти выражения.
- вы пропустили косую черту.
- что делает этот знак равенства?
- Вы хотите
ARGV[0]
в последнем аргументе переименовать вместо ARGV [1]?
- вы хотите использовать
*
подстановочный знак, который требует расширения оболочки до списка файлов, что означает, что вы не можете использовать форму списка system
Попробуйте
system "/usr/bin/rename -n 's/#{ARGV[0]}$/#{ARGV[1]}/' *#{ARGV[0]}"
Удалите опцию -n
, если похоже, что вы собираетесь переименовать так, как хотите.
И, конечно, вам не нужно вызывать оболочку для этого:
Dir.glob("*#{ARGV[0]}").each {|fname|
newname = fname.sub(/#{ARGV[0]}$/, ARGV[1])
File.rename(fname, newname)
}