Ersetzen Sie den Verzeichnisnamen und den Dateinamen im Verzeichnis zusammen mit einem Linux-Befehl.

Das Problem, das Sie lösen möchten

Es gibt mehrere Texte mit dem Namen "Hoge" im Verzeichnis "Hoge". Hier möchte ich sowohl den Verzeichnisnamen als auch den Dateinamen durch "hoge" ersetzen.

Beschreibung des Ersetzungsbefehls

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

Bis zum Druck

Zu diesem Zeitpunkt wird eine Liste der Zielverzeichnisse und -dateien angezeigt. Ich benutze -print0 nicht, weil ich möchte, dass Perl jede Zeile verarbeitet.

% 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

Teil von Perl

s|Hoge|hoge|r'vonrIst die Standardvariable$_Option zum Ersetzen und Zurückgeben als Skalarwert. Das Merkmal ist, dass die ersetzte ursprüngliche Zeichenfolge nicht geändert wird.

Referenz

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

Zustand vor der Umstellung

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

Drücken Sie den Konvertierungsbefehl zweimal

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

Zustand nach Umstellung

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

das ist alles

Weitere Herausforderungen

Ich konnte den alten Verzeichnisnamen nicht auf einmal überschreiben, so dass ich den Befehl zweimal traf. Um ehrlich zu sein, ist es nervig. Wenn Sie eine intelligentere Lösung haben, lassen Sie es mich bitte wissen: bow:

Recommended Posts

Ersetzen Sie den Verzeichnisnamen und den Dateinamen im Verzeichnis zusammen mit einem Linux-Befehl.
Ein Befehl zum Angeben einer Datei mit einem bestimmten Namen in einem Verzeichnis mit find und mv, cp oder gzip (Linux)
Suchen Sie den Dateinamen einschließlich des angegebenen Wortes und der angegebenen Erweiterung im Verzeichnis
Extrahieren Sie nur den Dateinamen mit Ausnahme des Verzeichnisses im Verzeichnis
Passen Sie die Dateiberechtigungen mit dem Linux-Befehl chmod an
Zeigen Sie den vollständigen Pfad (absoluten Pfad) einer Datei in einem Verzeichnis in Linux Bash an
Verwenden Sie den Befehl [shell], um eine beliebige Datei zu komprimieren, um eine Datei zu erstellen und die Originaldatei zu löschen.
Ersetzen Sie die eindeutige Darstellung der gelesenen Textdatei durch eine Beschriftung (mit GiNZA).
Abrufen des Dateinamens in einem Ordner mithilfe von glob
Informationen zu Linux-Datei- und Verzeichnisberechtigungen
Wenn der Variablenname mit dem Devaga-Befehl in pdb in Konflikt steht
Speichern Sie das Pystan-Modell und erhalten Sie eine Pickle-Datei
[Hinweis] Import von Dateien in das übergeordnete Verzeichnis in Python
[Linux] Datei- und Verzeichnisoperationsbefehle
Verarbeiten Sie den Inhalt der Datei der Reihe nach mit einem Shell-Skript
So erstellen Sie einen Befehl zum Lesen der Einstellungsdatei mit Pyramide
Speichern Sie die Pydrive-Authentifizierungsdatei in einem anderen Verzeichnis als das Skript
So geben Sie das Ausgabeergebnis des Linux-Befehls man in eine Datei aus
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
Durchsuchen Sie das Verzeichnis und erstellen Sie eine Liste mit Verzeichnispfaden und Dateinamen
Formatieren Sie das Git-Protokoll und erhalten Sie den festgeschriebenen Dateinamen im CSV-Format
Versuchen Sie, die Datei mit dem Befehl less neu zu schreiben
Ein Memo, das durch Umbenennen der Dateinamen im Ordner mit Python organisiert wird
[Linux] Ein Befehl zum Abrufen einer Liste der in der Vergangenheit ausgeführten Befehle
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Eine Geschichte, wenn ein Verzeichnis mit dem Befehl django-admin start project in einer virtuellen Umgebung mit Pipenv fehlerhaft ist
Testen Sie das Hochladen von Bildern, indem Sie in Python erstellen, ohne Dummy-Bilddateien in Django zu platzieren
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Legen Sie eine feste IP in der Linux-Umgebung fest
Kompilieren Sie Rust und führen Sie es mit einem einzigen Befehl aus
Speichern Sie das Objekt in einer Datei mit pickle
Es ist ein Mac. Was ist der Linux-Befehl Linux?
Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python
Was! Der entpackte Dateiname war SJIS! Befehl?
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
So lesen Sie Dateien in verschiedenen Verzeichnissen
Tool zum Einfügen des Ländernamens und des Ländercodes in einen Teil der IP-Adresse
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Beschreiben Sie das mehrstufige SSH-Ziel in der Konfiguration, melden Sie sich einfach an und kopieren Sie die Datei mit scp
Ich möchte die Variablen in der Python-Vorlagendatei ersetzen und in einer anderen Datei in Massenproduktion herstellen
Python2 / numpy> Ersetzen Sie nur eine bestimmte Spalte in einer Datei durch Spaltendaten aus einer anderen Datei> numpy.c_
Wenn eine lokale Variable mit demselben Namen wie die globale Variable in der Funktion definiert ist
Geben Sie die Lautstärke unter Linux an und spielen Sie den Sound ab
Erstellen Sie Amazon Linux mit AWS EC2 und melden Sie sich an
[Linux] Führen Sie git pull regelmäßig mit dem Befehl crontab aus
Lesen Sie die CSV-Datei und zeigen Sie sie im Browser an
Laden Sie das gleichnamige Modul an einer anderen Stelle
Führen Sie eine Python-Datei mit relativem Import in PyCharm aus
Geben Sie einen Binärspeicherauszug in Binärdatei und zurück in eine Binärdatei aus
Rufen Sie die Benutzer-ID und den Bildschirmnamen des Teilnehmers in Slack ab
[Linux] Erstellen Sie ein Selbstzertifikat mit Docker und Apache
Installieren Sie das Sicherheitsupdate (KB) einzeln auf Windows Server mit Ansible Part 2 ~ Erfassen Sie mit dem Befehl ls dynamisch mehrere MSU-Dateien im Verzeichnis und installieren Sie sie in einer Schleife
Erstellen Sie eine Dox-Datei mit Miniaturansichten der Fotos im Ordner mit der Python-Python-Docx-Bibliothek und der kostenlosen Software "Nur Reduzierung".
Ein Server, der mit Flasche.py und OpenCV die Anzahl der Personen vor der Kamera zurückgibt
[Linux] [C / C ++] So ermitteln Sie den Wert der Rücksprungadresse einer Funktion und den Funktionsnamen des Aufrufers