Chciałem znaleźć $featuredicon
zmienną w moich plikach php i uruchomiłemgrep -ir "$featuredicon"
Zrozumiałem, że znak dolara jest zastrzeżoną postacią w skorupce. Ale co to właściwie robi? Czy zmodyfikowałem moje pliki php? Obawiam się, że zrobiłem coś złego ...
następnym razem ucieknę grep -ir "\$featuredicon"
Odpowiedzi:
Powodem, dla którego wymieniono każdą linię każdego pliku, było zmienne podstawienie powłoki.
Kiedy zadzwonisz
bash
oceni to. Przeszuka zmienną$featuredicon
i umieści ją w poleceniu. Zgadnij, co$featuredicon
najprawdopodobniej jest?Racja, nic. Więc tak naprawdę to robisz:
I to pasuje do każdej linii każdego pliku.
Stara odpowiedź
Znak dolara (
$
) jest symbolem zastępczymend-of-line
w wyrażeniu regularnym (zakładam, że to samo dotyczy grep).Jeśli chcesz wyszukać znak dolara, użyj
'\$'
.Pamiętaj, aby sprawdzić pytanie StackOverflow: Jak grep dla symbolu dolara ($)?
źródło
grep
nie może samodzielnie modyfikować plików; nie spowodował żadnych szkód.źródło