Derzeit in cron
den Befehl Ich verwende Kopie *.data
von Quelle zu machen Weg zum Ziel:`finden -name` mit RegexMuster und den Dateinamen Austausch mit` cp`
find /source_path -name *.data -exec cp {} /target_path \;
Die Quelle Struktur ist:
/source_path/category1/001.data
/source_path/category1/002.data
/source_path/category2/003.data
/source_path/category3/004.data
/source_path/categorya/005.data
/source_path/categoryb/006.data
Nach dem obigen cron
Befehl, wird das Ziel enthalten:
/target_path/001.data
/target_path/002.data
/target_path/003.data
/target_path/004.data
/target_path/005.data
/target_path/006.data
Ich brauche eine einzeilige Lösung meinen aktuellen cron Befehl zu ersetzen, so dass nach der Ausführung, enthält das Ziel:
/target_path/category1_001.data
/target_path/category1_002.data
/target_path/category2_003.data
/target_path/category3_004.data
/target_path/categorya_005.data
/target_path/categoryb_006.data
Um Unterverzeichnisnamen als Präfix des Zieldateinamen anhang.
Danke.
'sed -r -e 's/\/source (_pfad) \/(kategorie. +) \/([0-9] + \. data)/\/ziel \ 1 \/\ 2_ \ 3/gm' source_file> target_file' – rock321987
Was macht dieser Code? Ich bin nicht vertraut mit Sed, aber es sieht aus wie Substitution zu mir.Überquert es den Quellpfad und kopieren Sie von der Quelle zum Ziel? Auch, "Kategorie" könnte alles, co sein Bindestriche, Unterstriche, etc, nicht nur mit der Wortkategorie beginnen. Danke – KDX
Sie haben es richtig..Es ist Substitution.Ich gehe davon aus, dass diese Pfade in einer Datei sind und ändern Sie es und speichern Sie es in einer anderen Datei..Wollen Sie dies oder etwas anderes? – rock321987