Bonjour humain, je veux récupérer mes petites photos de chat

9

NB: Tout ce qui est présenté dans la situation est totalement faux et vient d'être mis ici pour rendre le challenge un peu plus amusant;) ... Ou peut-être pas;)


=== === COMMENCER LA TRANSMISSION === ===

Bonjour,
j'ai récemment eu une panne de disque. J'espère avoir eu des sauvegardes et je veux maintenant récupérer mes photos. Cependant, CHAQUE sauvegarde semble corrompue dans l'univers parallèle où je vis. Mais ce n'est pas un problème, car nous avions des outils spéciaux pour aider les utilisateurs à retrouver leurs fichiers. Ils fonctionnent un peu comme le vôtre et recherchent autour d'un disque des en-têtes qui ressemblent à des images. Comme ils sont encore en version bêta, le logiciel récupère toute image qu'il trouve, lui donne un nom aléatoire et génère une liste contenant:

  • Le modèle de l'appareil photo qui a pris la photo, ou un seul -s'il n'est pas disponible. Notez que le modèle peut contenir des espaces, mais non -.

  • Un tab tab ( \t, ASCII 9)

  • Le nom du fichier photo.

Le fichier est un fichier texte standard et ressemble à ceci:

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

Le fichier est assez gros, et je ne peux pas compter sur mon petit Ubro pour déplacer tous les fichiers qui ont un modèle dans un répertoire séparé.


Cher humain, j'ai besoin de votre aide. Je veux que vous déplaciez toutes les photos qui contiennent des données sur l'appareil photo dans un répertoire séparé, afin que je puisse trouver mes petites photos de chats mignons dans ce désordre d'icônes, de captures d'écran ...

Cependant, ces sauvegardes ont lieu sur My LiquidStateDrive46X, donc je n'ai pas beaucoup d'espace (et je télécharge en fait Internet, donc, vous savez, il est difficile de télécharger autre chose en faisant cela. Je peux juste surfez à peine sur le web et vous êtes le seul que j'ai trouvé, humain!)

Ne me laisse pas vivre comme ça! S'il vous plaît, écrivez-moi un petit programme qui fera le travail pour moi et économisez un peu d'Ubro.


  • Comme il s'agit de code-golf, le programme le plus court gagne

  • J'ai besoin de pouvoir lancer votre programme, HUMAN! Assurez-vous donc que votre programme dispose d'un interprète existant.

  • Vous pouvez vous attendre à ce que le fichier de liste se trouve dans le répertoire où je lance votre script. Il sera nommé ./list.txt

  • Vous devez déplacer les images vers ./withmodel/

  • Chaque image récupérée se trouve dans le même répertoire d'où je lance votre programme

  • Aucune image n'a de - en son nom. Il en va de même pour les modèles d'appareils photo

  • Ce doit être un vrai programme, pas une simple fonction.

  • Pas d'accès Internet, je TELECHARGE! C'est vraiment important.

  • J'ai besoin de mes images de chat rapidement, ou je ne peux pas survivre: ce code-golf se terminera le 10 octobre, si je suis encore en vie ce jour-là.

=== === FIN DE TRANSMISSION === ===

WayToDoor
la source
Vous pouvez utiliser n'importe quelle langue qui a un interprète au moment où le défi a été publié, donc cela ressemble à une échappatoire standard, oui. Je ne veux pas trop restreindre cela ...
WayToDoor
Ok, j'ai édité cette ligne pour être un peu plus clair, à mon avis. Si vous ne l'aimez pas, n'hésitez pas à revenir.
FryAmTheEggman
3
C'est puuuurfect;)! Merci!
WayToDoor
J'ai mis une réponse, mais je me demande si je manque quelque chose. Pourquoi cela pourrait- il avoir besoin d'un accès Internet? Est-il important que le disque ne dispose pas de beaucoup d'espace? Est-ce significatif " Je ne peux pas compter sur mon petit Ubro pour déplacer tous les fichiers qui ont un modèle dans un répertoire séparé. "?
TessellatingHeckler
Cela ne devrait pas avoir besoin d'Internet. Je mets juste la règle au cas où ... Le disque n'a plus beaucoup d'espace => écrire le programme le plus court possible. Et l'Ubro est une pure narration, ce n'est pas significatif
WayToDoor

Réponses:

9

PowerShell (v4), 58 49 octets

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


# Previous 58 byte version
(gc list.txt)-notmatch'^-'-replace".+`t"|mv -des withmodel
  • get-content de la liste
  • retirez les modèles de caméras jusqu'à l'onglet en les remplaçant par rien. Cela ne changera pas les lignes commençant par "-".
  • pipe dans la commande de déplacement, dossier de destination 'withmodel'. Cela entraînera de nombreuses erreurs pour les lignes inchangées commençant par "-", mais comme aucun des fichiers n'a de "-" dans le nom, cela ne déplacera aucun fichier incorrect, seuls les bons seront déplacés.
TessellatingHeckler
la source
2
Putain de merde ... J'avais presque exactement la même chose. Enfin, un défi pour lequel PowerShell est presque conçu , et j'étais un peu trop lent. Avoir un +1.
AdmBorkBork
1
@TimmyD En effet; ce n'est pas particulièrement bien pour le golf, mais avec la façon dont "-replace" et "| mv" travaillent sur plusieurs choses à la fois, cela doit être l'un de ses points forts.
TessellatingHeckler