Hallo Mensch, ich möchte meine kleinen Katzenbilder wiederherstellen

9

NB: Alles, was in der Situation dargestellt wird, ist völlig falsch und wurde gerade hierher gebracht, um die Herausforderung ein bisschen lustiger zu machen;) ... oder vielleicht auch nicht;)


=== === ANFANGSÜBERTRAGUNG === ===

Hallo,
ich hatte kürzlich einen Festplattenfehler. Ich hatte hoffentlich Backups und möchte jetzt meine Fotos zurück. JEDES Backup sieht jedoch in dem Paralleluniversum, in dem ich lebe, beschädigt aus. Dies ist jedoch kein Problem, da wir spezielle Tools hatten, mit denen Benutzer ihre Dateien wiederfinden können. Sie funktionieren ein bisschen wie Ihre und suchen auf einer Festplatte nach Headern, die wie Bilder aussehen. Da sie sich noch in der Beta befinden, stellt die Software jedes gefundene Bild wieder her, gibt ihm einen zufälligen Namen und gibt eine Liste aus, die Folgendes enthält:

  • Das Modell der Kamera, die das Foto aufgenommen hat, oder ein einzelnes, -falls nicht verfügbar. Beachten Sie, dass das Modell Leerzeichen enthalten kann, aber nein -.

  • Ein Tabulatorzeichen ( \t, ASCII 9)

  • Der Name der Fotodatei.

Die Datei ist eine Standardtextdatei und sieht folgendermaßen aus:

[...]
-   uyfeiebsvH.jpg
-   hv754ce758.gif
-   8321214736.jpg
-   FgnvsfHJBs.jpg
-   OMGILOVYOU.jpg
-   HElloDearH.png
-   umanHAYYSG.jpg
COOLCAM S1332   umanIAYYSG.jpg
iCell 7G    1234567890.jpg
[...]

Die Datei ist ziemlich groß und ich kann mich nicht darauf verlassen, dass mein kleiner Ubro alle Dateien mit einem Modell in ein separates Verzeichnis verschiebt.


Lieber Mensch, ich brauche deine Hilfe. Ich möchte, dass Sie alle Fotos, die Daten über die Kamera enthalten, in ein separates Verzeichnis verschieben, damit ich meine kleinen niedlichen Katzenbilder aus diesem Durcheinander von Symbolen, Screenshots ... finden kann.

Diese Sicherungen finden jedoch auf My LiquidStateDrive46X statt, sodass ich nicht mehr viel Speicherplatz habe (und ich lade tatsächlich das Internet herunter. Es ist also schwierig, etwas anderes herunterzuladen, während ich das tue. Ich kann es einfach surfe kaum im Internet und du bist der einzige, den ich gefunden habe, Mensch!)

Lass mich nicht so leben! Bitte schreiben Sie mir ein kleines Programm, das die Arbeit für mich erledigt, und sparen Sie ein wenig Ubro.


  • Da dies Code-Golf ist, gewinnt das kürzeste Programm

  • Ich muss in der Lage sein, Ihr Programm zu starten, MENSCH! Stellen Sie also sicher, dass in Ihrem Programm ein Interpreter vorhanden ist.

  • Sie können erwarten, dass sich die Listendatei in dem Verzeichnis befindet, in dem ich Ihr Skript starte. Es wird ./list.txt genannt

  • Sie müssen Bilder nach ./withmodel/ verschieben.

  • Jedes wiederhergestellte Bild befindet sich in demselben Verzeichnis, von dem aus ich Ihr Programm starte

  • Kein Bild hat ein - in seinem Namen. Gleiches gilt für Kameramodelle

  • Es muss ein echtes Programm sein, keine einfache Funktion.

  • Kein Internetzugang, ich lade herunter! Das ist wirklich wichtig.

  • Ich brauche meine Katzenbilder schnell, sonst kann ich nicht überleben: Dieser Code-Golf endet am 10. Oktober, wenn ich an diesem Tag noch am Leben bin.

=== === ENDE DER ÜBERTRAGUNG === ===

WayToDoor
quelle
Sie können jede Sprache verwenden, die zum Zeitpunkt der Veröffentlichung der Herausforderung einen Dolmetscher hat. Es sieht also wie eine Standardlücke aus, ja. Ich möchte das nicht zu sehr einschränken ...
WayToDoor
Ok, ich habe diese Zeile meiner Meinung nach etwas klarer bearbeitet. Wenn Sie es nicht mögen, können Sie es gerne zurücksetzen.
FryAmTheEggman
3
Es ist puuuurfect;)! Danke!
WayToDoor
Ich habe eine Antwort gegeben, aber ich frage mich, ob mir etwas fehlt. Warum könnte dies einen Internetzugang erfordern? Ist es wichtig, dass auf der Festplatte nicht mehr viel Speicherplatz vorhanden ist? Ist das wichtig " Ich kann mich nicht darauf verlassen, dass mein kleiner Ubro alle Dateien mit einem Modell in ein separates Verzeichnis verschiebt. "?
TessellatingHeckler
Dies sollte kein Internet brauchen. Ich habe nur die Regel für den Fall gestellt ... Die Festplatte hat nicht mehr viel Speicherplatz => schreibe das kürzestmögliche Programm. Und der Ubro ist reines Geschichtenerzählen, es ist nicht signifikant
WayToDoor

Antworten:

9

PowerShell (v4), 58 49 Byte

(gc list.txt)-replace"^[^-]*`t"|mv -des withmodel


# Previous 58 byte version
(gc list.txt)-notmatch'^-'-replace".+`t"|mv -des withmodel
  • get-content der Liste
  • Entfernen Sie Kameramodelle bis zur Registerkarte, indem Sie sie durch nichts ersetzen. Dies ändert nichts an den Zeilen, die mit "-" beginnen.
  • Pipe in den Befehl move, Zielordner 'withmodel'. Dies führt zu vielen Fehlern bei den unveränderten Zeilen, die mit "-" beginnen. Da jedoch keine der Dateien ein "-" im Namen enthält, werden keine falschen Dateien verschoben, sondern nur die richtigen Dateien.
TessellatingHeckler
quelle
2
Heiliger Mist ... ich hatte fast genau das Gleiche. Schließlich eine Herausforderung, für die PowerShell fast entwickelt wurde , und ich war etwas zu langsam. Habe eine +1.
AdmBorkBork
1
@TimmyD In der Tat; Es ist nicht besonders gut zum Golfen geeignet, aber da "-replace" und "| mv" an mehreren Dingen gleichzeitig arbeiten, muss dies einer der stärksten Bereiche sein.
TessellatingHeckler