[Topic DIscussion] 关于shell脚本的轮询复制文件并改为指定文件名
Tofloor
poster avatar
Darling-Lee
deepin
2021-07-07 03:20
Author

我现在在玩一个linvst的东西,如果玩过的朋友应该都知道最麻烦的地方在于把linvst.so复制到wine下windows的vst目录下并且修改为每一个插件的名字。这样手动很麻烦,特别是安装的vst多的情况下。现在我需要的就是想写一个shell脚本,限于知识有限(非计算机出身),想在这请各位大神出谋划策。具体需求如下:

 

A目录有一个文件假设名字为aaa.so。B目录有50个文件分别为aab.dll,abb.dll,dasda.dll......

 

现在我需要从A目录复制这个aaa.so到B目录,并修改名字为B目录下的第一个文件名字(后缀不改,比如第一个改为aab.so),然后再循环复制,循环改名字(再比如第二个改为abb.so),依此循环,直到B目录下已经存在所有.dll文件的同名.so文件。

 

我的设想是首先读取B目录下的所有.dll文件名去掉.dll后缀后echo成一个目录文件列表记录文档,一行一个名字。然后循环逐行读取这个文件,每次读取一行就执行一次cp A目录下的aaa.so到B目录并按照所读取到的当行内容命名目标文件.so,即第一行读到aab赋值为line1,执行cp /A/aaa.so /B/$line1.so,行数+1后在读取到第二行abb赋值为line2,执行cp /A/aaa.so /B/$line2.so,最后行数读不出东西了停止执行。也不知道这样对不对,而且有想法但是自己知识不够脚本写不出来。特上来求助。

Reply Favorite View the author
All Replies
酷谷的谷子
deepin
2021-07-07 03:34
#1

我只有笨办法,50条就好了,简单一点

a123="A目录路径"

b123="B目录路径"

cp -r $a123/aaa.so $b123/aab.so

cp -r $a123/bbb.so $b123/abb.so

cp -r $a123/ccc.so $b123/dasda.so

Reply View the author
enforcee
deepin
2021-07-07 03:36
#2

linvst自带的那个处理工具不行吗

linvstconvert

Reply View the author
阿措
deepin
2021-07-07 17:58
#3

十块钱解决问题,鸠鸠428819551,

Reply View the author
Darling-Lee
deepin
2021-07-07 18:27
#4
enforcee

linvst自带的那个处理工具不行吗

linvstconvert

我^%^@$#^%@#^%$,我本来是安装了的,忘了用这东西,因为以前没用过脑子短路了。这真是神器

 

Reply View the author
Darling-Lee
deepin
2021-07-07 18:29
#5

二楼已解决,结贴

Reply View the author
enforcee
deepin
2021-07-07 20:54
#6
Darling-Lee

我^%^@$#^%@#^%$,我本来是安装了的,忘了用这东西,因为以前没用过脑子短路了。这真是神器

 

没想到玩音乐的也在玩Linux吧

Reply View the author
Darling-Lee
deepin
2021-07-08 21:55
#7
enforcee

没想到玩音乐的也在玩Linux吧

哈哈哈,什么平台?来个互关吧

Reply View the author