Qu'est-ce que la "ligne de commande" "pour supprimer un certain caractère à la fin d'une nom du fichier . Par exemple, subash.jpg.jpg. Je veux supprimer " .jpg "J'ai eu des problèmes pour "renommer les fichiers".
Réponses
Trop de publicités?rename
est la commande parfaite pour renommer des fichiers :) Elle dispose d'un large éventail d'options que mv
et peut également fonctionner avec des expressions régulières. Dans votre cas, la syntaxe suivante doit faire l'affaire :
rename 's/\.jpg\.jpg$/.jpg/' *.jpg.jpg
Explication :
- l'expression
s/searched/replace/
signifies
ubstitution lesearched
avec l'expressionreplace
chaîne. -
\.jpg\.jpg$
correspondra à toute ligne qui se termine par$
con.jpg.jpg
où les barres obliques inverses permettent d'échapper à la signification spéciale du point dans la regex. -
*.jpg.jpg
sera développé par le Shell comme une liste de tous les fichiers qui se termine par.jpg.jpg
dans le répertoire actuel.
Si la commande n'existe pas sur votre système, vous devez l'installer :
sudo apt update && sudo apt install rename
Si le nom du fichier est contenue dans une variable Shell, vous pouvez supprimer la sous-chaîne correspondante la plus courte à la fin en utilisant la méthode suivante ${var%sub}
ex.
$ f=subash.jpg.jpg
$ echo "${f%.jpg}"
subash.jpg
Ainsi, par exemple
mv "$f" "${f%.jpg}"
Vous pouvez également utiliser un joker comme ${f%.*}
pour supprimer un suffixe de point arbitraire.