2015-07-06 5 views
1

У меня есть сотни файлов, которые мне нужно переименовать. В настоящее время они выглядят примерно так:Как массовое переименование только части имен файлов?

localhost.programA.programA1.programA1stuff 

, и я хочу, чтобы изменить его

unixServer.programA.programA1.programA1stuff 

Как вы можете видеть, я просто хочу, чтобы изменить первую часть имени файла будет новый хозяин имя. Я новичок в unix/linux, поэтому я не уверен, есть ли простой способ сделать это, а это не вручную. Я предполагаю, что есть какой-то сумасшедший awk/sed один лайнер, который мог бы это сделать, но я не очень хорошо знаком ни с одним из этих инструментов, чтобы даже знать, с чего начать.

ответ

3

Вы можете использовать команду "rename".

В вашем случае:

rename localhost unixServer ./localhost* 

Вы можете быть более конкретным, если вы хотите.

http://man7.org/linux/man-pages/man1/rename.1.html

+0

О, хорошо, что было довольно спокойно. Спасибо. – R4F6

+1

Эта команда является частью пакета 'renameutils' на большинстве дистрибутивов – sehe

1

Ну, переименовывать команду просто работал для меня.

[email protected]:~/3# for i in {a..e} ; do touch localhost.program$i.program$i1.program$i1stuff ; done 
[email protected]:~/# ls 
localhost.programa.program.program localhost.programd.program.program 
localhost.programb.program.program localhost.programe.program.program 
localhost.programc.program.program 
[email protected]:~/# rename 's/localhost/unixServer/' localhost.* 
[email protected]:~/# ls 
unixServer.programa.program.program unixServer.programd.program.program 
unixServer.programb.program.program unixServer.programe.program.program 
unixServer.programc.program.program 
[email protected]:~/# 

Rename синтаксис команды, как я, будет работать как шарм для вашего требования .. дать ему попробовать ..

1

В Bash:

$ find . -iname "localhost*" 
./localhost.programA.programA1.programA1stuff 

$ find . -iname "localhost*" | while read file; do mv $file ${file/localhost/unixserver}; done 

$ find . -iname "unixserver*" 
./unixserver.programA.programA1.programA1stuff 
Смежные вопросы