Co robi grep, używając wyszukiwanego znaku dolara?


3

Chciałem znaleźć $featurediconzmienną 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"


Witamy w Super User. Pamiętaj, aby zaakceptować odpowiedź, która faktycznie odpowiada na twoje pytanie , co niekoniecznie jest pierwszą odpowiedzią, którą otrzymujesz.
Michael Hampton

Odpowiedzi:


4

Powodem, dla którego wymieniono każdą linię każdego pliku, było zmienne podstawienie powłoki.

Kiedy zadzwonisz

grep -ir "$featuredicon" *

bashoceni to. Przeszuka zmienną $featurediconi umieści ją w poleceniu. Zgadnij, co $featurediconnajprawdopodobniej jest?

Racja, nic. Więc tak naprawdę to robisz:

grep -ir "" *

I to pasuje do każdej linii każdego pliku.

Stara odpowiedź

Znak dolara ( $) jest symbolem zastępczym end-of-linew 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 ($)?


Ty, uciekając z części, sam to rozgryzłem.

Byłem po prostu ciekawy, co to zrobiło z moimi plikami php lub dlaczego wypisuje wszystko na terminal.

@ SandroDzneladze: Zaktualizowałem moją odpowiedź, aby odpowiedzieć na Twoje szczególne obawy. Źle interpretowałem twój problem.
Der Hochstapler

1

grepnie może samodzielnie modyfikować plików; nie spowodował żadnych szkód.


1
Ale co to robi? dlaczego wydrukował wszystkie linie z każdego pliku? A jak używać $ w grep do jakiego celu? ty za uspokojenie mojego umysłu :)

1
To nie jest odpowiedź i czuję się głupio, mówiąc ci to: P
Der Hochstapler


1
@Oliver: „Czy zmodyfikowałem pliki php?”
Ignacio Vazquez-Abrams

@ IgnacioVazquez-Abrams: Chyba masz rację. Przepraszamy za zbyt szybkie ocenianie.
Der Hochstapler
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.