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