sbsnewbie
Goto Top

Dateien umbennen und verschieben mit bash

Hallo Admisn,
ich suche gerade nach einer Lösung für folgendes Problem:

Ich habe zwei Dateien

einmal

1. neue datei__datum_uhrzeit.txt

und einmal

2. neue datei_artikelnummer_datum_uhrzeit.txt

Die 1. Datei ist eine Art Vollexport, die alle Artikelnummern enthält, die andere ist eine Art Einzelimport, der nur eine Datei enthält.

ich suche jetzt nach der Syntax, um die Einzel Datei umzubennen in neue_datei und in einen Ordner zu verschieben, aber nur die Einzeldatei.

Dummerweise funktioniert ein einfaches

mv neue datei_.txt* ordner/neue_datei_.txt nicht, weil hier nicht zwischen dem einzelnen Unterstrich _ un dem doppelteten Unterstrich __ wie beim Vollexport unterschieden wird und dann beide Dateien verschoben werden.

Ich habe schon diesen String hier versucht, erhalte aber ständig Fehlermeldungen:

mv neue datei_[!_]* /ordner/neue_datei_[!_]*....

Kann mir jemand ein bischen auf die Sprnge helfen, wie die Syntax korrekt lauten muss?

Danke schonmal im Voraus.

Greetz

Content-Key: 332098

Url: https://administrator.de/contentid/332098

Printed on: April 19, 2024 at 20:04 o'clock

Mitglied: 132692
132692 Mar 14, 2017 at 17:15:17 (UTC)
Goto Top
Hey.
Das Leerzeichen musst du natürlich escapen
mv neue\ datei_[!_]* /ordner
Dateien verschieben über die shell mit bashscript

P.
Member: sbsnewbie
sbsnewbie Mar 14, 2017 at 18:04:59 (UTC)
Goto Top
Ach richtig. Gut, mit escapen gehzt zwar das Verschieben, aber nicht das gleichzeitige umbennen.


mv neue\ datei_[!_]* /ordner/neue_datei_[!_]*

also im Prinzip soll die neue datei.txt danach im ordner liegen und neue_datei.txt heissen...

wenn ich den String wie oben eingebe, krieg ich die meldung, dass angegebene Ziel ist kein Verzeichnis.

Muss das evtl. so heißen:

mv neue\ datei_[!_]* neue_datei_[!_]*/ordner/
?
Mitglied: 132692
132692 Mar 14, 2017 updated at 21:05:59 (UTC)
Goto Top
also im Prinzip soll die neue datei.txt danach im ordner liegen und neue_datei.txt heissen...
Je nee das kann so ja nie funktionieren da es mehrere Dateien sind, da musst du eine For-Schleife über die Dateien bauen oder mit find und -exec arbeiten. Und alle Dateien den selben Namen geben?? Wie soll das bitte in einem Verzeichnis gehen face-smile???