Localizar e substituir recursivo

3

Eu quero modificar todos os arquivos em um diretório recursivamente.

Eu quero substituir:

<?php

com

 <?php
 /**
  *
  * Copyright (C) MyCompany, Ltd. - All Rights Reserved
  * Unauthorized copying of this file, via any medium is strictly prohibited
  * Proprietary and Confidential
  * Written by Justin E <[email protected]>, March 2014
  *
  */

Qual seria a melhor solução? Eu conheço alguns sed, mas estou procurando manter o espaçamento e as novas linhas também para que pareça profissional.

    
por Justin E 26.03.2014 / 00:35

1 resposta

4

Eu criaria um arquivo como dummy com o conteúdo que você deseja substituir. Então, o arquivo dummy ficaria abaixo.

<?php
 /**
  *
  * Copyright (C) MyCompany, Ltd. - All Rights Reserved
  * Unauthorized copying of this file, via any medium is strictly prohibited
  * Proprietary and Confidential
  * Written by Justin E <[email protected]>, March 2014
  *
  */

Depois disso, eu executaria o script abaixo.

for f in ./*; do
sed -i '/<?php/{
    s/<?php//g
    r dummy
}' $f
done

Estou substituindo o <?php por espaços e substituindo-o pelo conteúdo do arquivo dummy .

    
por 26.03.2014 / 00:50