Ich habe eine Reihe von Dateien, auf die ich den gleichen Befehl anwenden möchte, und die Ausgabe sollte den gleichen Namen wie die verarbeitete Datei enthalten, jedoch mit einer anderen Erweiterung.
Derzeit benenne ich /my/data/Andrew.doc in /my/data/Andrew.txt um. Dies möchte ich für alle .doc-Dateien aus dem Ordner / my / data / tun und den Namen beibehalten.
Ich habe mehrere Versionen ausprobiert, aber ich denke, ich habe etwas falsch in der Syntax, da ich ein Linux-Neuling bin.
command-line
bash
Robert
quelle
quelle
Antworten:
Es gibt mindestens hunderttausend Millionen verschiedene Möglichkeiten, dies zu erreichen, aber hier sind die Top-Kandidaten:
Die Bash for-Schleife
Verwenden
find
Der
find
Befehl hat einen schönen kleinenexec
Befehl, der sich hervorragend zum Ausführen von Dingen eignet (mit einigen Einschränkungen). Suchen ist besser als einfaches Globbing, da Sie wirklich nach den ausgewählten Dateien filtern können. Achten Sie auf die ungerade Syntax.Beachten Sie, dass
find
rekursiv ist , so dass Sie verwenden möchten-maxdepth 1
haltenfind
in aktuellen Arbeitsverzeichnis.-type f
kann verwendet werden, um reguläre Dateien herauszufiltern.Wenn wir nur die Umbenennung doc zu txt ...
Das
rename
Befehl ist bei der Suche sed-like. Offensichtlich wird dies nichts zur Konvertierung des Formats beitragen.quelle
quelle