Strona man podaje dwa przykłady:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
Więc to albo s albo y, a potem /replaceThis/withThis
Co oznaczają wiodące s i y? Czy są inne opcje?
Strona man podaje dwa przykłady:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
Więc to albo s albo y, a potem /replaceThis/withThis
Co oznaczają wiodące s i y? Czy są inne opcje?
Odpowiedzi:
W pierwszym przypadku:
rename 's/\.bak$//' *.bak
uruchamiasz wyrażenie regularne przeciwko nazwom plików i zastępujesz pasującą część wyrażeń (.bak na końcu nazwy pliku) drugim wyrażeniem (które jest puste).
W drugim przypadku:
rename 'y/A-Z/a-z/' *
dopasowujesz do przestrzeni wzorców wyrażeń regularnych i transliterujesz do celu. Innymi słowy, zakres AZ zmienia się na zakres az, przez co nazwy plików są małe.
Proponuję zajrzeć na stronę podręcznika użytkownika sed, aby uzyskać więcej poleceń i więcej szczegółów. Myślę, że najczęściej używane jest polecenie „s”. Jak dobrze, regex (sekcja 7) i Perl dokumentacja może być pomocne. W szczególności, oto samouczek dotyczący perla i wyrażeń regularnych.
Od man sed
:
s / regexp / replace / Próba dopasowania wyrażenia regularnego do przestrzeni wzorca. Jeśli sukces W pełni wymień tę część dopasowaną do zamiennej. The zamiennik może zawierać znak specjalny i odnosić się do tego część pasującego obszaru wzoru i specjalne ucieka od \ 1 do \ 9, aby odnieść się do odpowiedniego dopasowania wyrażenia podrzędne w wyrażeniu regularnym. y / source / dest / Transliteruj znaki w wyświetlanym obszarze wzorców w źródle do odpowiedniej postaci w dest.