Jak mogę usunąć część tekstu z nazw plików w folderze?
Obecnie próbuję:
rename s/"NEWER_(.*?)"//g *
Ale nic się nie zmienia
Mam folder nadrzędny z kilkoma podfolderami, w których znajdują się pliki, które według OneDrive byłyby świetnym pomysłem, aby dołączyć „(NEWER_timestamp)” i chciałbym je usunąć.
Przykładowe nazwy plików:
getyou.ico (NEWER_1417529079.87)
o7pm.ico (NEWER_1417529184.89)
o7th.ico (NEWER_1417529135.81)
rename
batch-rename
Kevin
źródło
źródło
Odpowiedzi:
Spróbuj wykonać następujące czynności:
[^/]*(.*) .*$
pasują tylko do ostatniej części ścieżki, która nie zawiera/
. I(.*)
jest grupa pasująca do wszystkiego po ostatniej/
i przed spacją. Jego odniesieniem będzie
$1
..*$
dopasowuje wszystko do końca$
nazwy pliku po spacji.s/.../REPLACEMENT/
po prostu zachowaliśmy dopasowaną grupę, która znajduje się pomiędzy ostatnią,\
a spacją,(.*)
która jest znana jako grupa dopasowań.źródło
Powinieneś rozważyć użycie cudzysłowów poza wyrażeniem regularnym (wewnątrz są traktowane dosłownie jako cudzysłowy) i uciec
(
. Próbować;Precyzja wyrażenia może nie być konieczna, ale nie można być zbyt ostrożnym przy modyfikowaniu plików.
źródło
reading filenames from STDIN
, jestem już w folderze nadrzędnym, w którym znajdują się wszystkie te pliki*NEWER*
tak, jak jest, jeśli nie znaleziono żadnych rozszerzeń, musiałeś popełnić błąd lub używasz powłoki, która zastąpiła niezrównaną symbol wieloznaczny niczym.