Renommage flexible dans le terminal


0

Disons que j'ai un dossier avec des fichiers:

/Users/user101/Temp/rentest: ls
fi_name1.txt  fi_name2.txt  fi_name3.txt

Je cherche une méthode de renommage flexible. Par exemple si je le fais:

/Users/user101/Temp/rentest: ls | vim -

J'entre dans vim:

entrez la description de l'image ici

Maintenant, comment est-ce que je réoriente ceci vers le terminal? Et de plus, comment l'utiliser avec une mvcommande pour renommer en bloc les fichiers du répertoire?

Je sais qu'il y a une renameutilité et que la plupart des gens vont réagir en apprenant simplement un tas de terminalcommandes, mais je trouve que c'est une façon beaucoup plus intéressante / flexible de le faire. Est-ce que quelqu'un connaît une méthode ou a déjà essayé de le faire?

EDIT : Il y a une tendance à stackexchangese concentrer sur les détails d'une question. Mais je ne cherche pas de réponses qui disent "oh, vous avez créé les fichiers un par un, utilisez simplement mv" ou "oh, le mode d'édition de colonne ne vous laissera faire qu'un type de modification de tous les fichiers".

Le point ici est que je ne veux pas chercher google à chaque fois que je veux ajouter un pré-correctif, un post-correctif ou une sorte de correction étrange à un groupe de fichiers dans un répertoire. Et il se peut que ce ne soit pas tous les fichiers non plus.

/Users/ivanabraham/Temp/rentest: ls
fi_name1.txt  fi_name2.txt  fi_name3.txt  gi_name3.txt  gi_name4.txt

et

ls | grep 'fi*' | vim -

par exemple.


Si vous renommez manuellement chaque fichier de cette manière, il ne s'agit pas d'un renommage par lot. Vous pouvez le réaliser avec de simples mvcommandes
phuclv

C’est vrai ... mais j’envisageais de passer au mode d’édition de colonnes pour le faire beaucoup plus rapidement (je ne l’ai pas capturé dans le GIF) et il y aura en général 30 fichiers, et non pas 3.
ITA le

1
mode d'édition de colonne sera inutile pour des noms tels que file1_..., file2_...... file10_..., file11_.... En fait, vous devez juste apprendre à utiliser regex, puis l’utiliser dans toutes les commandes / applications prenant en charge regex, y compris vi. Notez que lsle résultat n'est pas censé être transmis à une autre commande
phuclv

Ce n'est pas le type de réponse que je cherche. Pardon.
ITA

+1 pour le lien cependant, mon prochain arrêt aurait été Python.
ITA

Réponses:


1

vidir de moreutils semble faire ce que je cherchais. Sur un MacOS, vous pouvez faire:

brew install moreutils

une fois que vous avez Homebrewmis en place.

entrez la description de l'image ici

Étant donné que quelqu'un a écrit des extensions / applications pour le faire, pouvoir le faire depuis la CLI semble peu probable, mais si quelqu'un réussit à le faire, je serais très intéressé de voir comment il l'a fait.


0

Il semble que cet ensemble d'outils n'est pas maintenu, mais je l'utilise toujours: https://www.nongnu.org/renameutils/

Plus précisément:

Le programme qmv ("quick move") permet de modifier les noms de fichiers dans un éditeur de texte. Les noms de tous les fichiers d'un répertoire sont écrits dans un fichier texte, qui est ensuite édité par l'utilisateur. Le fichier texte est lu et analysé, et les modifications sont appliquées aux fichiers.

qmvpeut fonctionner dans un certain nombre de modes, mais je préfère l’utiliser avec les options en ligne de commande, -fdoqui répertorie la destination sous la forme d’une seule colonne dans l’éditeur.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.