Нужна команда MV

297
James Sullivan

Мне нужно переименовать файл, но сохранить расширение (каким бы оно ни было, без указания его)

Например:

file_20161118.csv.ovrдолжен быть переименован в "file.csv.ovr".

Однако в некоторых случаях это может быть file_20161118.csv.rpl, и в этом случае мне это нужно "file.csv.rpl".

Спасибо

0
`mv` просто переименовывает один файл или перемещает один или несколько файлов в другое место. У него нет поддержки искажения имени файла. Также было бы полезно, если бы вы могли указать, нужно ли вам решение для HPUX, AIX, FreeBSD, OpenBSD, Mac OS X, Illumos или любого из множества других вариантов UNIX и Unix-подобных ОС. a CVn 7 лет назад 1

2 ответа на вопрос

1
jcbermu

renameделает трюк.

Например, файл с именем file_20161118.csv.ovrстановится file.csv.ovrпосле этой команды:

rename 's/file_20161118/file/' file_20161118* 

Он использует регулярные выражения Perl, так что вы можете многое с ним сделать. Проверьте больше примеров здесь .

0
Kjetil S.

You might want:

perl -e'for(@ARGV){ $f=$_; s/_(\d)\./\./; rename$f,$_}' file1 file2 files*