بازرس لستراد که از تعداد پروندههای زیاد اسکاتلند یارد خسته شده برای حل برخی از آنها با شرلوک تماس میگیرد. شرلوک از بازرس لستراد میخواهد که پروندهها را در ساختار مشخصی برای او ارسال کند اما به دلیل بینظمیهای اسکاتلند یارد و نامشخص بودن ساختار پروندههای آنها، بازرس لستراد توانایی انجام این کار را ندارد. با نوشتن یک اسکریپت شل به بازرس لستراد کمک کنید که با گرفتن فایل CSV پروندهها، آنها را در فولدرهای مختلف مرتب کرده و برای شرلوک ارسال کند.
در حال حاضر پروندههای اسکاتلند یارد در یک فایل CSV بزرگ با ساختار زیر قرار گرفتهاند:
شرلوک از بازرس لستراد خواسته که تمامی پروندهها در پوشه Cases
قرار بگیرند. به این صورت که در این پوشه برای هر نوع پرونده یک پوشه خاص ایجاد شده و سپس برای هر پرونده، یک فایل در پوشه نوع آن پرونده با نام فرد مرتبط با پرونده ایجاد شده و توضیحات پرونده در این فایل قرار بگیرند.
از آنجا که امنیت پروندههای اسکاتلند یارد نیز از اهمیت بالایی برخوردار است، باید دسترسی افراد به هر پرونده با توجه به وضعیت آن تغییر پیدا کند.
برای پروندههای با وضعیت Solved
همه افراد باید توانایی خواندن پرونده را داشته باشند اما فقط صاحب پرونده امکان نوشتن بر روی آن را داشته باشد.
برای پروندههای با وضعیت In Progress
صاحب پرونده و گروه آن باید توانایی خواندن پرونده را داشته باشند اما فقط صاحب پرونده امکان نوشتن بر روی آن را داشته باشد.
برای پروندههای با وضعیت Not Started
فقط صاحب پرونده توانایی خواندن آن را داشته باشد.
دقت کنید که در هیچ حالتی، هیچکس نباید بتواند فایل پرونده را اجرا کند.
دقت داشته باشید که ممکن است در نام افراد کاراکتر اسپیس وجود داشته باشد. در اینصورت باید اسپیسهای موجود در نام را با کاراکتر _
جایگزین کنید.
با دریافت و پردازش این فایل باید پوشهبندی پروندهها به شکل زیر ایجاد شود:
محتوای هر فایل نیز باید با ستون Description
مربوط به آن پرونده پر شده باشد. برای مثال محتوای درون فایل Lisa_Eaton
باید متن زیر باشد:
ساختار فایلی پروژه اولیه به شکل زیر است:
و شما باید راهحل خود را درون فایل solution.sh
پیادهسازی کنید.
برای ارسال جواب، دستورات خواسته شده را در فایلی با نام solution.sh
بنویسید و سپس آن را انتخاب و ارسال کنید.