Я хочу переименовать файлы с помощью регулярных выражений.Команда rename с регулярным выражением не работает
Например: заменить шаблон Mod[0-9][0-9]
к Mod[0-9][0-9]_temp
в файлах N_Mod10_m.bdf
и N_Mod11_n.bdf
с помощью следующей команды:
rename 's/\(.*Mod[0-9][0-9]\)\(.*\.bdf\)/$1_temp$2 *
, но это не работает.
вам не хватает закрытия ' '' в 'rename' команды. – fedorqui
Также, если вы делаете '$ 1_temp', bash будет искать переменную' 1_temp'. Чтобы сказать, '$ 1' +' _temp', скажем '$ {1} _temp'. – fedorqui
Вам нужно использовать нежелательный шаблон: '(. *?)', Я думаю, это то, что вы ищете: 'rename '/(.*? Mod [0-9] [0-9]) (. *? \. bdf)/$ 1_temp $ 2 '* '. Взгляните на http://www.cyberciti.biz/tips/renaming-multiple-files-at-a-shell-prompt.html и http://unix.stackexchange.com/questions/19807/renaming-files- чтобы иметь-Строчные-расширения-с-переименованы. –