我有一个文件FileToCopy.pbs
,我想将其复制到多个目录中,同时将xxx
文件中调用的一行更改为pwd
要复制文件的目录的位置。
我可以使用什么样的 for 循环来执行这个命令?
另外,我的一些目录*
在目录路径名末尾包含一个。
更具体地说,我有一个目录结构:
/home/path1/dir1
/home/path1/dir2
/home/path1/dir3*
/home/path1/dir4*
.
.
etc
并希望复制FileToCopy.pbs
到所有目录中,以便我有:
/home/path1/dir1/FileToCopy.pbs
/home/path1/dir2/FileToCopy.pbs
/home/path1/dir3*/FileToCopy.pbs
/home/path1/dir4*/FileToCopy.pbs
xxx
同时将中的每个复制文件中的一行更改FileToCopy.pbs
为其所在的目录。例如,位于 的行xxx
应FileToCopy.pbs
更改/home/path1/dir1/
为/home/path1/dir1/
谢谢。
答案1
我已经明白了。
代码如下:
在目录中/home/path1/
for i in *; do cp /directory/of/FileToCopy.pbs $i; cd $i; sed -i s#xxx#$(pwd)#g FileToCopy.pbs ; cd /home/path1/; done