안녕 인간, 내 작은 고양이 사진을 복구하고 싶습니다


9

NB : 상황에 제시된 모든 것은 완전히 가짜이며 도전을 좀 더 재미있게하기 위해 여기에 방치되었습니다.


=== === 전송 시작 ​​=== ===

안녕하세요,
최근 디스크 고장이있었습니다. 백업을 원했기 때문에 이제 사진을 다시 원합니다. 그러나 모든 백업은 내가 사는 병렬 유니버스에서 손상된 것처럼 보입니다. 그러나 사용자가 파일을 다시 찾도록 돕는 특수 도구가 있었기 때문에 문제가되지 않습니다. 그것들은 당신과 약간 비슷하게 작동하며 이미지처럼 보이는 헤더를 디스크 주위에서 찾습니다. 여전히 베타 버전이므로 소프트웨어는 찾은 이미지를 복구하고 임의의 이름을 지정하고 다음을 포함하는 목록을 출력합니다.

  • 사진을 촬영 한 카메라 모델 또는 -사용할 수없는 경우 단일 모델 . 모델은 공백을 포함 할 수 있지만을 포함 할 수는 없습니다 -.

  • 탭 문자 ( \t, ASCII 9)

  • 사진 파일의 이름입니다.

파일은 표준 텍스트 파일이며 다음과 같습니다.

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

파일이 상당히 커서 작은 Ubro를 사용하여 모델이있는 모든 파일을 별도의 디렉토리에 옮길 수는 없습니다.


인간 여러분, 당신의 도움이 필요합니다. 카메라에 대한 데이터가있는 모든 사진을 별도의 디렉토리에 옮기려면 아이콘, 스크린 샷의 혼란에서 작은 귀여운 고양이 사진을 찾을 수 있습니다 ...

그러나 이러한 백업은 My LiquidStateDrive46X에서 수행되므로 공간이 부족하지 않습니다 (실제로 인터넷을 다운로드하고 있으므로 다른 작업을 다운로드하는 것이 어렵습니다. 간신히 웹 서핑을하고 당신은 내가 찾은 유일한 사람입니다!)

내가 그렇게 살게하지 마라! 저를 위해 일할 작은 프로그램을 작성하고 작은 Ubro를 저장하십시오.


  • 이것이 코드 골프이기 때문에 가장 짧은 프로그램이 승리합니다.

  • HUMAN 프로그램을 시작할 수 있어야합니다! 따라서 프로그램에 기존 통역사가 있는지 확인하십시오.

  • 목록 파일이 스크립트를 실행하는 디렉토리에있을 것으로 예상 할 수 있습니다. 이름은 ./list.txt입니다.

  • 이미지를 ./withmodel/으로 이동해야합니다.

  • 복구 된 모든 이미지는 프로그램을 시작하는 곳과 동일한 디렉토리에 있습니다.

  • 그의 이름에-가있는 이미지는 없습니다. 카메라 모델도 마찬가지

  • 단순한 기능이 아니라 실제 프로그램이어야합니다.

  • 인터넷에 접속할 수 없습니다. 다운로드 중입니다! 이것은 정말 중요합니다.

  • 고양이 이미지가 빨리 필요하거나 살아남을 수 없습니다.이 코드 골프는 아직이 날 살아 있다면 10 월 10 일에 끝납니다.

=== === 전송 끝 === ===


챌린지가 게시 될 때까지 통역사가있는 언어를 사용할 수 있으므로 표준 허점처럼 보입니다. 나는 이것에 너무 많은 것을 제한하고 싶지 않다 ...
WayToDoor

좋아, 나는 그 의견을 좀 더 명확하게 편집했다. 마음에 들지 않으면 언제든지 되돌릴 수 있습니다.
FryAmTheEggman

3
그것은 puuuurfect입니다;)! 감사합니다!
WayToDoor

답을했지만 뭔가 빠졌는지 궁금합니다. 인터넷 액세스가 필요한 이유 무엇 입니까? 디스크에 남은 공간이 부족한 것이 중요합니까? "중요한 Ubro를 사용하여 모델이있는 모든 파일을 별도의 디렉토리로 이동시킬 수 없습니까?"
TessellatingHeckler

인터넷이 필요하지 않습니다. 난 그냥 규칙을 넣어 경우 ... 디스크 공간이 충분하지 않습니다 => 가능한 가장 짧은 프로그램을 작성하십시오. Ubro는 순수한 스토리 텔링입니다. 중요하지 않습니다
WayToDoor

답변:


9

PowerShell (v4), 58 49 바이트

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


# Previous 58 byte version
(gc list.txt)-notmatch'^-'-replace".+`t"|mv -des withmodel
  • 리스트의 내용
  • 카메라 모델을 아무것도 교체하지 않고 탭까지 제거하십시오. "-"로 시작하는 줄은 변경되지 않습니다.
  • 이동 명령, 대상 폴더 'withmodel'에 파이프하십시오. "-"로 시작하는 변경되지 않은 행에 대해 많은 오류가 발생하지만 이름에 "-"가없는 파일이 없으므로 잘못된 파일이 이동하지 않으므로 올바른 파일 만 이동합니다.

2
이런 쓰레기 ... 나는 거의 똑같은 것을했다. 마지막으로 PowerShell은 거의 설계된 과제이며 약간 느 렸습니다. +1하십시오.
AdmBorkBork

1
@TimmyD 실제로; 골프에는 특히 좋지는 않지만 "-replace"와 "| mv"가 여러 가지 작업을 한 번에 수행하는 방식으로 가장 강력한 영역 중 하나 여야합니다.
TessellatingHeckler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.