No manual da rpl
opção -s
habilite o modo dry-run, ou seja, ele simula as substituições sem alterar os arquivos reais.
Se eu tentar, obtenho a seguinte saída:
$ rpl --dry-run 'JLCPCB Part #' 'LCSC Part #' *
rpl: Simulating replacement of "JLCPCB Part #" with "LCSC Part #" (case sensitive; partial words matched)
rpl: The files listed below would be modified in a replace operation
/home/mark/Kicad/library/fmt_adc.kicad_sym
/home/mark/Kicad/library/fmt_connectors.kicad_sym
/home/mark/Kicad/library/fmt_device.kicad_sym
/home/mark/Kicad/library/fmt_diodes.kicad_sym
/home/mark/Kicad/library/fmt_interface.kicad_sym
/home/mark/Kicad/library/fmt_modules.kicad_sym
/home/mark/Kicad/library/fmt_power.kicad_sym
/home/mark/Kicad/library/fmt_switches.kicad_sym
/home/mark/Kicad/library/fmt_transistor.kicad_sym
rpl: 24 matches found in 9 out of 21 files
mas isso é bem inútil, já que não consigo ver as mudanças reais que ele vai fazer. Mesmo adicionando o sinalizador verbose não mostra as mudanças.
É uma maneira de habilitar um teste real? Minha saída esperada seria algo como:
old-text: ./fmt_adc.kicad_sym:70: (property "JLCPCB Part #" "C84284"
new-text: ./fmt_adc.kicad_sym:70: (property "LCSC Part #" "C84284"
e assim por diante.
Não estou familiarizado o suficiente com
rpl
o , que é uma ferramenta menos comum do que coisas comosed
ouawk
, que vêm com quase qualquer instalação Linux e podem fazer significativamente mais.Com
sed
, eu simplesmente faria o seguinte para substituirOLD STRING
porNEW
"on the dry":Para realmente executar a substituição:
Você também pode aplicar isso aos arquivos, imprimindo o nome de cada arquivo:
Mas, francamente... seu caso de uso exige apenas um gerenciamento adequado de arquivos de texto e não algumas invocações improvisadas como as minhas acima!
A biblioteca de símbolos Kicad é um repositório git para começar. Não sei se a coisa no seu diretório home também é, então se você não tiver certeza,
Se isso lhe disser "
fatal: not a git repository
", então torne-o um repositório git:Então, faça suas substituições sem executar a seco . Ou seja, execute
rpl
sem--dry-run
, ou simplesmente vá direto parased -i 's/OLD STRING/NEW/g' *
.Depois, você pode ver o que foi alterado usando
Você pode então adicionar os arquivos onde deseja manter as alterações no índice:
e reverter o restante ao seu estado original
e finalmente confirme as alterações para que elas fiquem no novo estado esperado:
(você pode então verificar o histórico de alterações que você fez com
git log -p
)