Eu descobri isso.
O código é o seguinte:
No diretório /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
Eu tenho um arquivo, FileToCopy.pbs , que gostaria de copiar em vários diretórios enquanto altero uma linha chamada xxx no arquivo para a localização pwd do diretório no qual o arquivo deve ser copiado.
Que tipo de loop pode usar para fazer este comando?
Além disso, alguns dos meus diretórios incluem * no final do nome do caminho do diretório.
Mais especificamente, tenho uma estrutura de diretórios:
/home/path1/dir1
/home/path1/dir2
/home/path1/dir3*
/home/path1/dir4*
.
.
etc
e gostaria de copiar FileToCopy.pbs em todos os diretórios para que eu tenha:
/home/path1/dir1/FileToCopy.pbs
/home/path1/dir2/FileToCopy.pbs
/home/path1/dir3*/FileToCopy.pbs
/home/path1/dir4*/FileToCopy.pbs
ao alterar uma linha xxx em cada arquivo copiado de FileToCopy.pbs para o diretório no qual ele está. Por exemplo, a linha xxx para o FileToCopy.pbs localizado em /home/path1/dir1/ deve ser alterada para /home/path1/dir1/
Obrigado.
Eu descobri isso.
O código é o seguinte:
No diretório /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