2013-09-09 7 views
2

У меня есть куча файлов в каталоге. Имена файлов создаются следующим образом: a_dc.ac.txt, a_dc.aa.txt, a_dc.cc.txt и т. Д. Мне нужно заменить всю часть имен a_dc на a_adj. Я попытался следующие, но это не работает:переименовать несколько файлов в каталог

переименовании «s/a_dc/a_adj/s» *

Есть ли другой способ, чтобы исправить это? Я не знаю, почему переименование не работает.

P.S. Я использую CentOS

+0

Если это одноразовый контракт, а не пытаться сделать это с помощью одного сценария, просто скопируйте содержимое каталога в таблицу, и создайте команду переименования для каждого из них, используя простую формулу манипуляции строкой, затем скопируйте столбец результатов и вставьте его в терминал. –

+1

У меня его нет прямо сейчас, но я написал скрипт bash для прокрутки каталога с помощью ls, разделить имя файла на «.», Заменить часть, которую вы хотите заменить, перестроить имя и переименуйте файл. – jonhopkins

ответ

3

Использование найти Однострочник:

find . -maxdepth 1 -name 'a_dc.*.txt' -exec bash -c 'x="{}"; mv "$x" "a_adj.${x#*.*.}"' \; 
+0

круто! большое спасибо. – newbie

+0

Если этот ответ помог вам решить вашу проблему, подумайте о том, чтобы обозначить ее как «принятую», поэтому пользователи, сталкивающиеся с подобной проблемой в будущем, смогут легко ее увидеть. – anubhava