
Suchen Sie alle Dateien im Ordner, erstellen Sie eine Liste (Protokoll) und das Protokoll am Anfang jeder Zeile Anfügen an "mkdir -p /VOLUME1/Pfad
So was:
/volume1/TEST/folder1/1.jpg
/Volume1/TEST/folder2/2.jpg
Ich versuche Folgendes: 1#cd-Verzeichnis:
cd /volume1/TEST
2#Protokoll erstellen
ls **/* >/volume1/log.txt
3#neuen Pfad hinzufügen (String)
sed -e 's/^/mkdir -p /VOLUME1/TEST2/' /volume1/log.txt >/volume1/log2.txt
Ich brauche dies: in jeder Zeile hinzufügen:
mkdir -p /Volume1/TEST2/folder1/1.jpg
mkdir -p /Volume1/TEST2/folder2/2.jpg
.
.
aber meine Ausgabe ist "/Volume1/TEST2/ folder1/1.jpg"
(ich vermisse "mkdir -p/Volume1/"
und Lücke ist außerdem
(LINUX)
Antwort1
Sie müssen die Backslashs maskieren. Zumindest hat es bei mir funktioniert:
sed -e 's/^/mkdir -p \/VOLUME1\/TEST2\//' log.txt > log2.txt
Der Anfang des Ergebnisses:
mkdir -p /VOLUME1/TEST2/confEclipse/MIT-Eclipse-CheckStyle-20160408.xml
mkdir -p /VOLUME1/TEST2/confEclipse/MIT-Eclipse-CodeStyle-CleanUp-20160408.xml
mkdir -p /VOLUME1/TEST2/confEclipse/MIT-Eclipse-CodeStyle-CodeTemplates-20160408