Zrozumienie kodu - linux

CR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

Witam, moglby ktos pomoc ze zrozumieniem dzialania i kodu:

Kopiuj
sed -e '$p ' -e '/\.[a-z]\{3\}/d'

bo ja rozumiem polecenie sed, bardziej chodzi mi o resztę

PerlMonk
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa 🐪
  • Postów: 1719
5

. - dopasowuje jakikolwiek znak
[a-z]{3} - dopasowuje trzy znaki z zakresu od a do z.
Czyli w sumie całe wyrażenie dopasuje jakikolwiek znak (litery, przecinek, kropka, nawiasy itd.) a po nim trzy znaki z zakresu a- z.
Można to sprawdzić na stronie https://regexr.com/ . Tam też będzie takie wyjaśnienie.

Silv
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
0

@PerlMonk: kropka jest escape'owana – to chyba zmienia postać rzeczy?

Althorion
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1620
0

@Silv: Kropka jest wyescape’owana dla shella, podobnie jak wyescape’owane są { czy }. Wyrażenie regularne, które dostaje sed, to faktycznie .[a-z]{3}, tak jak @PerlMonk napisał.

Silv
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
2

@Althorion: rzeczywiście, może się tak zdarzyć, nawet nie pomyślałem. Niemniej, jak teraz patrzę, shell to Bash, a znaki między apostrofami są czytane przez Bash as-is… ale może czegoś nie widzę.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.