para o comando de cópia de loop

1

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.

    
por The Inquiring Robot 04.09.2013 / 16:11

1 resposta

1

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
    
por The Inquiring Robot 04.09.2013 / 20:16