Remplacez le nom du répertoire et le nom du fichier dans le répertoire par une commande Linux.

Le problème que vous souhaitez résoudre

Il y a plusieurs textes nommés «Hoge» dans le répertoire «Hoge». Ici, je veux remplacer à la fois le nom du répertoire et le nom du fichier par hoge.

Description de la commande replace

find `pwd` -name "*Hoge*" -print | perl -nle 'rename $_, s|Hoge|hoge|r'

Jusqu'à l'impression

À ce stade, une liste de répertoires et de fichiers cibles apparaîtra. Je n'utilise pas -print0 parce que je veux que perl traite chaque ligne.

% find `pwd` -name "*Hoge*" -print                                                 
/Users/omokawayasuaki/test/Hoge
/Users/omokawayasuaki/test/Hoge/Hoge1.txt
/Users/omokawayasuaki/test/Hoge/Hoge3.txt
/Users/omokawayasuaki/test/Hoge/Hoge2.txt

une partie de perl

s|Hoge|hoge|r'derEst la variable par défaut$_Option de remplacement et de retour sous forme de valeur scalaire. La caractéristique est que la chaîne de caractères d'origine remplacée n'est pas modifiée.

référence

https://perldoc.jp/docs/perl/5.18.1/perlreref.pod#OPERATORS

État avant la conversion

% tree                                                                             
.
└── Hoge
    ├── Hoge1.txt
    ├── Hoge2.txt
    └── Hoge3.txt

Appuyez deux fois sur la commande de conversion

% find `pwd` -name "*Hoge*" -print | perl -nle 'rename $_, s|Hoge|hoge|r'
% find `pwd` -name "*Hoge*" -print | perl -nle 'rename $_, s|Hoge|hoge|r'

État après conversion

% tree                                                                             
.
└── hoge
    ├── hoge1.txt
    ├── hoge2.txt
    └── hoge3.txt

c'est tout

Autres défis

Je ne pouvais pas écraser l'ancien nom du répertoire en une seule fois, alors j'ai fini par appuyer deux fois sur la commande. Pour être honnête, c'est ennuyeux. Si vous avez une solution plus intelligente, faites-le moi savoir: arc:

Recommended Posts

Remplacez le nom du répertoire et le nom du fichier dans le répertoire par une commande Linux.
Une commande pour spécifier un fichier avec un nom spécifique dans un répertoire avec find et mv, cp ou gzip (linux)
Recherchez le nom du fichier, y compris le mot et l'extension spécifiés dans le répertoire
Extraire uniquement le nom du fichier à l'exclusion du répertoire dans le répertoire
Ajustez les autorisations des fichiers avec la commande Linux chmod
Afficher le chemin complet (chemin absolu) d'un fichier dans un répertoire sous Linux Bash
Utilisez la commande [shell] pour compresser par zip n'importe quel fichier pour créer un fichier et supprimer le fichier d'origine.
Remplacez la représentation unique du fichier texte lu par une étiquette (en utilisant GiNZA)
Obtenir le nom de fichier dans un dossier à l'aide de glob
À propos des autorisations de fichiers et de répertoires Linux
Lorsque le nom de la variable entre en conflit avec la commande Devaga dans pdb
Enregistrez le modèle pystan et les résultats dans un fichier pickle
[Note] Importation de fichiers dans le répertoire parent en Python
[Linux] Commandes d'opération de fichier et de répertoire
Traitez le contenu du fichier dans l'ordre avec un script shell
Comment faire une commande pour lire le fichier de paramètres avec pyramide
Enregistrez le fichier d'authentification Pydrive dans un répertoire différent du script
Comment afficher le résultat de sortie de la commande man Linux dans un fichier
Lisez le fichier en Python avec un chemin relatif depuis le programme
Creusez le répertoire et créez une liste de chemins de répertoire + noms de fichiers
Formatez le journal Git et obtenez le nom du fichier validé au format csv
Essayez de réécrire le fichier avec la commande less
Un mémo organisé en renommant les noms de fichiers dans le dossier avec python
[Linux] Une commande pour obtenir une liste des commandes exécutées dans le passé
Le nom du fichier était mauvais en Python et j'étais accro à l'importation
Une histoire quand un répertoire est bogué avec la commande django-admin start project dans un environnement virtuel utilisant Pipenv
Créer en Python sans fichier image factice dans Django et tester le téléchargement de l'image
[Python] Récupérez les fichiers dans le dossier avec Python
Définir une adresse IP fixe dans l'environnement Linux
Compilez et exécutez Rust avec une seule commande
Enregistrer l'objet dans un fichier avec pickle
C'est un Mac. Qu'est-ce que la commande Linux Linux?
Archivez et compressez tout le répertoire avec python
Quoi! Le nom du fichier décompressé était SJIS! commander?
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
Comment lire des fichiers dans différents répertoires
Outil pour insérer le nom du pays et le code du pays dans une partie de l'adresse IP
Comment obtenir une liste de fichiers dans le même répertoire avec python
Décrivez la destination ssh en plusieurs étapes dans la configuration, connectez-vous facilement et copiez le fichier avec scp
Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier
Python2 / numpy> Remplacer uniquement une colonne spécifique d'un fichier par les données de colonne d'un autre fichier> numpy.c_
Lorsqu'une variable locale portant le même nom que la variable globale est définie dans la fonction
Spécifiez le volume sous Linux et jouez le son
Créez Amazon Linux avec AWS EC2 et connectez-vous
[Linux] Exécutez périodiquement git pull avec la commande crontab
Lisez le fichier csv et affichez-le dans le navigateur
Chargez le module du même nom dans un autre emplacement
Exécuter un fichier Python avec une importation relative dans PyCharm
Sortie d'un vidage binaire en binaire et retour dans un fichier binaire
Obtenez l'ID utilisateur et le nom d'écran du participant dans Slack
[Linux] Créez un auto-certificat avec Docker et apache
Installez la mise à jour de sécurité (Ko) individuellement sur Windows Server avec Ansible Partie 2 ~ Acquérez dynamiquement plusieurs fichiers MSU sous le répertoire avec la commande ls et installez-les en boucle
Créez un fichier dox avec des vignettes des photos dans le dossier en utilisant la bibliothèque Python python-docx et le logiciel gratuit «Réduction uniquement».
Un serveur qui renvoie le nombre de personnes devant la caméra avec bottle.py et OpenCV
[Linux] [C / C ++] Comment obtenir la valeur d'adresse de retour d'une fonction et le nom de fonction de l'appelant