我需要重命名数百个文件。目前它们看起来像这样:
localhost.programA.programA1.programA1stuff
我希望将其更改为
unixServer.programA.programA1.programA1stuff
如您所见,我只想将文件名的第一部分更改为新的主机名。我是unix / linux的新手,所以我不确定是否有一种简单的方法可以做到这一点。我想有一种疯狂的awk / sed one liner可以做到这一点,但我对这些工具中的任何一种都不熟悉,甚至不知道从哪里开始。
答案 0 :(得分:3)
您可以使用“重命名”命令。
在你的情况下:
rename localhost unixServer ./localhost*
如果你愿意,你可以更具体。
答案 1 :(得分:1)
好吧,重命名命令对我有用。
root@H61H2-MV:~/3# for i in {a..e} ; do touch localhost.program$i.program$i1.program$i1stuff ; done
root@:~/# ls
localhost.programa.program.program localhost.programd.program.program
localhost.programb.program.program localhost.programe.program.program
localhost.programc.program.program
root@technomics-H61H2-MV:~/# rename 's/localhost/unixServer/' localhost.*
root@H61H2-MV:~/# ls
unixServer.programa.program.program unixServer.programd.program.program
unixServer.programb.program.program unixServer.programe.program.program
unixServer.programc.program.program
root@H61H2-MV:~/#
重命名我使用的命令语法,对于你的要求会像魅力一样工作..试一试..
答案 2 :(得分: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