Sie sollten sicherstellen, dass das Verzeichnis vorhanden ist, bevor Sie versuchen, darauf zu kopieren:
#!/usr/bin/env bash IFS=',' while read OS HS do mkdir -p $HS cp -av $OS $HS done < SlingManifest.csv
Ich habe eine CSV mit zwei Spalten. Spalte 1 sind vollständige Dateinamen. Spalte zwei sind Ordnernamen. Ich muss die Datei in Spalte 1 in den Ordner in Spalte 2 kopieren. Sowohl Dateien als auch Ordner befinden sich im selben Hauptverzeichnis. Ich habe folgendes Skript:
IFS=',' while read OS HS do cp -av $OS $HS done < SlingManifest.csv
Dies besagt, dass es funktioniert, aber wenn ich den Ordner überprüfe, erhalte ich eine Datei ohne Namen. Der Inhalt der Datei ist korrekt, aber die Datei hat keinen Namen und in jedem Ordner ist nur eine Datei vorhanden. Wie kann ich das verhindern?
Beispiel vim von CSV:
TinyHouseNation_600SqFtPowercouplesRetreat_190473_SLING.xml,./2_25_17/ BuyingTheView_RuralCasaNiagara_192555_SLING.xml,./2_26_17/ BuyingTheView_SexyHideAwayToronto_192546_SLING.xml,./2_26_17/ LifetimeOriginalMovie_LoveByThe10thDate_188563_SLING.xml,./2_27_17/ Special_10thDateGirlsNightIn_196744_SLING.xml,./2_27_17/ Special_SniperInsideTheCrosshairs_49112_SLING.xml,./2_27_17/
Sie sollten sicherstellen, dass das Verzeichnis vorhanden ist, bevor Sie versuchen, darauf zu kopieren:
#!/usr/bin/env bash IFS=',' while read OS HS do mkdir -p $HS cp -av $OS $HS done < SlingManifest.csv
Ich habe das herausgefunden. Ich habe eine for-Schleife verwendet, um Textdateien für jeden Unterordner zu erstellen, und dann eine neue verschachtelte for-Schleife, um den Inhalt der Textdatei in den entsprechenden Ordner zu kopieren. Hat funktioniert.