Zmienianie nazw wielu plików przez dodanie ciągu na początku


21

Dla około 200 plików w katalogu chciałbym dodać ciąg 1_na początku wszystkich nazw plików.

Nazwy plików są na przykład DATASET_X_Y_Zi wynik powinien być 1_DATASET_X_Y_Z.

Nie wiem nic na temat skryptów Shell, ale może jest jedna linijka dla terminala.



Link @Rinzwind dotyczy innego pytania. Pytanie Macydanim dotyczy przygotowania ciągów znaków do nazw plików, a nie do zawartości pliku.
jc

Odpowiedzi:


38
  • rename 's/^/1_/' * do zmiany nazwy wszystkich plików w bieżącym katalogu

lub

  • rename 's/^/1_/' DATASET*do zmiany nazwy wszystkich plików w bieżącym katalogu, zaczynając od DATASETich nazwy

Objaśnienie: wyrażenie s/^/1_/mówi: „zamień początek nazwy pliku (to znaczy ten symbol -> ^)” na 1_„.


Jeśli renamenie zrobisz tego po wyjęciu z pudełka, musisz zainstalować prename(zmiana nazwy PERL).
user1359,

14

Możesz łatwo zmienić nazwę wszystkich plików w bieżącym typowaniu katalogów (zakładając, że używasz bash):

for i in *; do mv "$i" 1_"$i"; done

oczywiście ostrożnie; usunie WSZYSTKIE pliki w bieżącym katalogu, które są „widoczne” (nazwa pliku nie zaczyna się od „.”)


Jest to pierwsze poprawne rozwiązanie, które znalazłem, którego można użyć do dodania czegoś podobnego .csvdo podzbioru plików, ze zmienionym wyrażeniem wieloznacznym zamiast *. +1
Zelphir Kaltstahl

Łał! Pętle w interfejsie CLI! To jest nowe. :)
Raymond Wachaga

9

Możesz użyć pyRenamer . Można go znaleźć w centrum oprogramowania Ubuntu. wprowadź opis zdjęcia tutaj Pierwotny wzorzec pliku powinien mieć postać {X}, a wzorzec nazwy pliku powinien mieć nazwę 1_ {1}


Jeden z moich ulubionych programów
Allan
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.