Copia o arquivo e substitui a string

3

Estou tentando escrever um script que copie o arquivo log_REPLACE e substitua a string REPLACE no nome do arquivo e no arquivo com a letra A e B .

Portanto, quero criar log_A e log_b , e a string REPLACE dentro deles é substituída pelas letras A e B, respectivamente.

Estou tentando:

cp log_REPLACE log_A
cp log_REPLACE log_B
grep -rl REPLACE  | xargs sed -i 's/REPLACE/A/g'

mas isso acaba reescrevendo em ambas as cópias (* A e * B). Existe uma maneira melhor de fazer isso?

    
por Sushma Sharma 02.05.2017 / 16:48

1 resposta

2

Você pode percorrer as substrings de nome de arquivo possíveis, fazer as substituições com sed , salvar o STDOUT de sed como o nome de arquivo desejado:

for i in a b; do
    sed "s/REPLACE/$i/g" log_REPLACE >"log_$i"
done

Faça as alterações necessárias para atender sua necessidade.

    
por 02.05.2017 / 16:53

Tags