Comment puis-je supprimer du texte des noms de fichiers dans un dossier?
J'essaie actuellement:
rename s/"NEWER_(.*?)"//g *
Mais rien n'est renommé
J'ai un dossier parent, avec un tas de sous-dossiers, dans lesquels se trouvent des fichiers, que OneDrive a pensé être une excellente idée d'ajouter un "(NEWER_timestamp)" à, et j'aimerais le supprimer.
Exemples de noms de fichiers:
getyou.ico (NEWER_1417529079.87)
o7pm.ico (NEWER_1417529184.89)
o7th.ico (NEWER_1417529135.81)
rename
batch-rename
Kevin
la source
la source
Réponses:
Essayez ce qui suit:
[^/]*(.*) .*$
ne correspond qu'à la dernière partie du chemin d'accès qui ne contient pas de/
. Et(.*)
est un groupe de tout correspondre après la dernière/
et avant un espace. Sa référence arrière sera
$1
..*$
fait correspondre tout à la fin$
du nom des fichiers après l'espace.s/.../REPLACEMENT/
, nous venons de conserver le groupe correspondant qui est entre le dernier\
et un espace(.*)
qui est connu comme groupe de correspondances.la source
Vous devriez envisager d'utiliser les guillemets en dehors de l'expression régulière (à l'intérieur, ils sont pris littéralement comme des guillemets) et échapper
(
. Essayer;La précision de l'expression n'est peut-être pas nécessaire, mais vous ne devez pas être trop prudent lorsque vous modifiez des fichiers.
la source
reading filenames from STDIN
Je suis déjà dans le dossier Parent où tous ces fichiers sont*NEWER*
tel qu'il est si aucune extension n'est trouvée, vous devez avoir fait une erreur, ou utilisez un shell qui a remplacé un caractère générique inégalé par rien.