Wpis z mikrobloga

W kodzie programu muszę zmienić nazwę zmiennej. Plików jest kilkaset w różnych katalogach. W niektórych nazwa zmiennej się znajdzie, w innych pewnie nie. Pytanie za 100 pkt: jak zautomatyzować proces wyszukiwania nazwy zmiennej i jej zamianę na nową?

#linux #unix #programowanie
  • 19
  • Odpowiedz
@lutecki: Jak masz to zrobić jeden raz, to najpierw sobie zrób listę plików i przejrzy jąj czy nie ma czegoś co by się tam mogło zepsuć, a potem już tylko przeleć pliki z tej listy pętlą while... read.. do i zamień co trzeba sedem z użyciem regexpów. No i wcześniej kopia bezpieczeństwa oczywiście.
  • Odpowiedz
@tell_me_more: No ja wiem że to był przykład, ale ja np. rozumiem co napisałeś a i tak bym się bał tak robić na żywca, więc dawanie takiego przykładu komuś kto może go NIE do końca rozumieć (a pewnie nie rozumie, bo jakby rozumiał to by się nie musiał pytać), to trochę jak dawanie małpie brzytwy. :) Tego się może potem nie dać odwrócić z automatu.
  • Odpowiedz
@guziec_z_afryki: ja tam używam takich rzeczy, tylko najpierw testuję na jakimś przykładzie regexa, a po wszystkim przeglądam diffa w gicie. Odwrócić się zawsze da, od tego jest system kontroli wersji.

Nie widzę różnicy między tym, a używaniem refactoringu czy search&replace w IDE - też często psują (szczególnie jak gdzieś jest kod używający refleksji/dependency injection/innych magicznych tricków). No i refactoring często psuje dokumentację i komentarze.
  • Odpowiedz
Też o nim myślałem, tylko sed mi chyba nie przeszuka podfolderów


@lutecki: no to find + sed

świetnie, tylko jak masz tam też zmienne o nazwach "tofoo" i 'korfoo' to te nazwy też zostaną zmienione na 'tobar' i korbar', a chyba nie o to chodzi?


@guziec_z_afryki: Tak, ale można ograniczyć przez znaczniki początku i końca wyrazu - problem sam się rozwiązuje.
  • Odpowiedz
@lutecki: pod Wine odpalasz Notepad++ i tam jest funkcja "szukaj i zmień" - wrzucasz, żeby wyszukał daną zmienną we wszystkich plikach danego katalogu.. i zamienił ją na .... i voilla
  • Odpowiedz