Linux rename — Usuwanie spacji z nazw plików
Znaki spacji w nazwach plików, mogą stwarzać różne problemy, np. podczas dostępu przez przeglądarkę internetową do takich plików umieszczonych na serwerze, ale to tylko jedna z wielu podobnych sytuacji. Z tego powodu pokażę dziś bardzo prosty sposób na automatyczną zamianę znaków spacji z nazw plików, na inne znaki, bądź też zupełne ich usunięcie.
W czym problem?
Człowiek ze swej natury jest leniwy... Na ręczne zamienianie znaków spacji w nazwach plików, można sobie pozwolić, jeśli ma to dotyczyć jednego pliku, ale nie jeśli ma to być czynność powtarzalna - nie po to mamy komputer. Z tego powodu, poradzimy z tym zagadnieniem sobie przy pomocy polecenia rename, a następnie wykonamy sobie skrypt, który na przyszłość może ułatwić nam podobne zadania. No to do dzieła.
Jak usuwać/zamieniać znaki spacji z nazw plików?
Jak już wspomniałem, posłużymy się poleceniem rename, któremu podamy odpowiednie wyrażenie regularne, dzięki któremu program będzie wiedział, jak potraktować nazwy plików. Komenda rename obsługuje składnię wyrażeń regularnych znaną z Pearla. Nim przejdziemy do wydania właściwej komendy, zatrzymajmy się chwilkę przy tychże wyrażeniach. Jako, że będzie nas interesowała zamiana pewnych znaków na inne, wyrażenie regularne będzie miało składnie: s/<co zamienić>/<na co zamienić>/g, gdzie s/ oznacza substitution, czyli zamianę, zaś /g oznacza global, dzięki czemu zamiana będzie zachodziła w obrębie całej nazwy pliku, a nie np. tylko pierwszego wystąpienia szukanego ciągu znaków. Myślę, więc, że nikogo nie zdziwi już komenda, która będzie miała na celu zamianę wszystkich znaków spacji z nazwy polików, na podkreślniki _:
Może przygotujmy z tego skrypt?
Jeśli operacje zamiany spacji w nazwach plików wykonujemy dość często, dobrym pomysłem będzie przygotowanie sobie prostego skryptu w Bashu. Będzie to de facto zapisanie do pliku polecenia, wcześniej już wspomnianego. Stwórzmy więc plik, np. changespaces.sh, o poniższej zawartości (lub analogicznej do niej):rename 's/ /./g' "$1"
Kiedy plik skryptu mamy gotowy, nadajmy mu prawa do wykonywania:
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!