Śmiertelnie proste.
Jak zmienić nazwę
05_h.png
06_h.png
do
05_half.png
06_half.png
Przynajmniej myślę, że to proste, ale trudno jest Google na tego typu rzeczy, chyba że już wiesz.
Dzięki....
Po prostu użyj basha, nie musisz wywoływać poleceń zewnętrznych.
for file in *_h.png
do
mv "$file" "${file/_h.png/_half.png}"
done
Nie dodawaj #!/bin/sh
Dla tych, którzy potrzebują tej jednej linijki:
for file in *.png; do mv "$file" "${file/_h.png/_half.png}"; done
Do not add #!/bin/sh
? Próbowałem pracować z tym stwierdzeniem lub bez niego.#!/bin/bash
. To powiedziawszy, bash jest zwykle domyślną powłoką w wielu komputerach, więc nie znajdziesz wielu różnic: D Więcej informacji można znaleźć tutajWypróbuj
rename
polecenie:Aktualizacja:
przykład użycia:
tworzyć treści
rozwiązanie testowe:
źródło
ls
? corename ...
ty próbujeszrename
nie jest standardowym narzędziem Unix.brew install rename
's//'
rename [options] expression replacement file...
rename from util-linux 2.23.2
.
pasuje do DOWOLNEGO znaku, a nie tylko kropki -\.
zamiast kropki należy użyćźródło
mv $f $fnew
sięecho $fnew
jako druga linia aby upewnić się, że zdrowy wygląd wyjściowych.Szukasz czystego rozwiązania bash? Istnieje wiele podejść, ale oto jedno.
Zakłada się, że jedynymi plikami w bieżącym katalogu, które kończą się na,
_h.png
są te, których nazwę chcesz zmienić.O wiele bardziej szczegółowo
Zakładając, że te dwa przykłady są jedynymi. pliki.
W ogólnym przypadku zmiany nazw plików w nie zostały objęte przed .
źródło
Użyj
rename
narzędzia napisanego w perlu. Może być tak, że domyślnie nie jest dostępny ...źródło
źródło
Miałem podobne pytanie: w instrukcji opcja zmiany nazwy jako
więc możesz go używać w ten sposób
W kodzie: „_h” to wyrażenie, którego szukasz. „_half” to wzorzec, którym chcesz zastąpić. „* .png” to zakres plików, których szukasz dla możliwych plików docelowych.
Mam nadzieję, że to pomoże c:
źródło
Innym podejściem może być ręczne użycie opcji zmiany nazwy partii
Kliknij plik prawym przyciskiem myszy -> Niestandardowe polecenia pliku -> Zmień nazwę partii i możesz zastąpić h. z połową.
To zadziała dla GUI opartego na Linuksie używającego WinSCP itp
źródło
Użyj
rename
narzędzia:źródło
Jedna wkładka:
for file in *.php ; do mv "$file" "_$file" ; done
źródło
Chociaż zestaw odpowiedzi jest kompletny, muszę dodać kolejny brakujący.
źródło