Så kom tiden — kl. 19:07 præcis, lokal tid — for den anden opgave i Google Treasure Hunt. Det der efterspørges denne gang er at trække nogle linjer ud af nogle bestemte filer i en større struktur, leveret i form af en zip-fil.
Opgaven kan besvares forholdvis trivielt, ved at trævle hele strukturen igennem, men det tager noget tid. Det er helt sikkert mere oplagt at trække på den nærmeste Unix command line.
Konkret skal man udtrække et bestemt linjenummer “N” fra filer der opfylder et bestemt mønster “A”, og summere indholdet. Det samme gør man med linje nummer “M” fra filer der opfylder mønster “B”. Og til sidst multiplicerer man disse to tal. De to summer kan udtrækkes på følgende måde (f.eks. med hjælp fra Cygwin hvis man befinder sig på en Windows maskine):
find . -path "<mønster>" -exec sed -n '<linjenummer>p' '{}' \; | (tr '\n' +; echo 0) | bcFor mit vedkommende var de konkrete kommando-linjer:
find . -path "*abc*.js" -exec sed -n '4p' '{}' \; | (tr '\n' +; echo 0) | bc
=> 22054
find . -path "*EFG*.pdf" -exec sed -n '3p' '{}' \; | (tr '\n' +; echo 0) | bc
=> 25964Hvilket førte til resultatet 572610056. Men det vil naturligvis være et nyt resultat hver gang. God fornøjelse!