-
Verifique se você tem algum diretório temporário onde você escreve sua saída, porque senão você não poderá executar o comando em
*.rb
duas vezes sem obterblob_processed_processed.rb
arquivos. Você sempre pode copiar os arquivos de saída do diretório temporário quando tudo estiver concluído e funcionando bem. -
coloque os nomes dos arquivos em
""
para ter certeza de que você pode lidar com pelo menos nomes de arquivos com espaços neles. -
Escape aspas duplas dentro do comando sed com uma barra invertida (
\"
)
O resultado seria algo como:
#!/bin/bash
mkdir -p tmp
for i in *.rb
do
out=tmp/${i%.rb}_processed.rb
cp "$i" "$out"
sed -i "s#require \"selenium-webdriver\"#require 'my_helper' #" "$out"
done
[editar por Michael (OP)] Isso funcionou principalmente, embora eu fizesse:
#!/bin/bash
mkdir -p tmp
for i in *.rb
do
out=tmp/${i}
cp "$i" "$out"
done
que manteve os mesmos nomes de arquivos, mas colocou todos os novos arquivos em tmp /