Hola humano, quiero recuperar mis fotos de gatito


9

NB: Todo lo presentado en la situación es totalmente falso y acaba de ser puesto aquí para hacer el desafío un poco más divertido;) ... O tal vez no;)


=== === INICIO DE LA TRANSMISIÓN === ===

Hola,
recientemente tuve una falla en el disco. Espero tener copias de seguridad y ahora quiero recuperar mis fotos. Sin embargo, CADA copia de seguridad parece corrupta en el universo paralelo donde vivo. Pero eso no es un problema, porque teníamos herramientas especiales para ayudar al usuario a encontrar sus archivos. Funcionan un poco como el tuyo y miran alrededor de un disco en busca de encabezados que parecen imágenes. Como todavía están en beta, el software recupera cualquier imagen que encuentre, le da un nombre aleatorio y genera una lista que contiene:

  • El modelo de la cámara que tomó la foto, o una sola, -si no está disponible. Tenga en cuenta que el modelo puede contener espacios, pero no -.

  • Una pestaña char ( \t, ASCII 9)

  • El nombre del archivo de la foto.

El archivo es un archivo de texto estándar y se ve así:

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

El archivo es bastante grande, y no puedo confiar en mi pequeño Ubro para mover todos los archivos que tienen un modelo en un directorio separado.


Querido humano, necesito tu ayuda. Quiero que muevas todas las fotos que tienen datos sobre la cámara en un directorio separado, para que pueda encontrar mis pequeñas imágenes de gatos lindos de este lío de iconos, capturas de pantalla ...

Sin embargo, estas copias de seguridad se están realizando en My LiquidStateDrive46X, por lo que no me queda mucho espacio (y en realidad estoy descargando Internet, así que, ya sabes, es difícil descargar otra cosa mientras lo hago. Simplemente puedo ¡apenas navegas por la web y eres el único que he encontrado, humano!)

¡No me dejes vivir así! Por favor, escriba un pequeño programa que haga el trabajo por mí y ahorre un poco de Ubro.


  • Como se trata de código golf, el programa más corto gana

  • ¡Necesito poder lanzar tu programa, HUMANO! Así que asegúrese de que su programa tenga un intérprete existente.

  • Puede esperar que el archivo de lista esté en el directorio donde inicio su script. Se llamará ./list.txt

  • Necesita mover imágenes a ./withmodel/

  • Cada imagen recuperada está en el mismo directorio desde donde inicio su programa

  • Ninguna imagen tiene un - en su nombre. Lo mismo ocurre con los modelos de cámara.

  • Debe ser un programa real, no una función simple.

  • No hay acceso a internet, estoy descargando! Esto es realmente importante

  • Necesito las imágenes de mi gato rápidamente, o no puedo sobrevivir: este código de golf finalizará el 10 de octubre, si aún estoy vivo en este día.

=== === FIN DE LA TRANSMISIÓN === ===


Puede usar cualquier idioma que tenga un intérprete cuando se publique el desafío, por lo que parece una laguna estándar, sí. No quiero restringir demasiado esto ...
WayToDoor

Ok, he editado esa línea para que sea un poco más clara, en mi opinión. Si no te gusta, puedes revertirlo.
FryAmTheEggman

3
Es puuuurfect;)! ¡Gracias!
WayToDoor

He puesto una respuesta, pero me pregunto si me falta algo. ¿Por qué esto podría necesitar acceso a internet? ¿Es importante que al disco no le quede mucho espacio? ¿Es esto significativo " No puedo confiar en mi pequeño Ubro para mover todos los archivos que tienen un modelo en un directorio separado "?
TessellatingHeckler

Esto no debería necesitar internet. Acabo de poner la regla en caso de que ... El disco no tenga mucho espacio restante => escriba el programa más corto posible. Y el Ubro es pura narración, no es significativo
WayToDoor

Respuestas:


9

PowerShell (v4), 58 49 bytes

(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 lista
  • elimine los modelos de cámara hasta la pestaña reemplazándolos por nada. Esto no cambiará las líneas que comienzan con "-".
  • canalizar en el comando de movimiento, carpeta de destino 'withmodel'. Esto generará muchos errores para las líneas sin cambios que comienzan con "-", pero como ninguno de los archivos tiene un "-" en el nombre, eso no moverá ningún archivo incorrecto, solo se moverán los archivos correctos.

2
Santa mierda ... tuve casi exactamente lo mismo. Finalmente, un desafío para el que PowerShell está casi diseñado , y yo era un poco demasiado lento. Tener un +1.
AdmBorkBork

1
@TimmyD De hecho; no es particularmente bueno para el golf, pero con la forma en que "-replace" y "| mv" funcionan en varias cosas a la vez, esta tiene que ser una de sus áreas más fuertes.
TessellatingHeckler
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.