Suchen Sie nach allen zu protokollierenden Dateien und fügen Sie der BASH-Protokollierung eine Zeichenfolge hinzu

Suchen Sie nach allen zu protokollierenden Dateien und fügen Sie der BASH-Protokollierung eine Zeichenfolge hinzu

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

verwandte Informationen