Hai trovato lavoro in una biblioteca locale, dove aiuti a organizzare la collezione di libri antichi. Gli studenti che la frequentano sono spesso a caccia di citazioni ricordate a metà, da inserire nelle loro tesine. Invece di leggere a mano ogni libro da cima a fondo, decidi di costruire un piccolo strumento che li analizzi, cercando proprio queste citazioni parziali.
Cerca nei file le righe che corrispondono a una stringa di ricerca e restituisci tutte le righe corrispondenti.
Il comando Unix grep cerca nei file le righe che corrispondono a un'espressione regolare. Il tuo compito è implementare una versione semplificata del comando grep, che supporta la ricerca di stringhe fisse.
Il comando grep accetta tre argomenti:
Poi legge il contenuto dei file specificati (nell'ordine indicato), trova le righe che contengono la stringa di ricerca e infine restituisce quelle righe nell'ordine in cui sono state trovate. Quando cerca in più file, ogni riga corrispondente è preceduta dal nome del file e dai due punti (':').
Il comando grep supporta i seguenti flag:
-n Anteponi il numero di riga e i due punti (':') a ogni riga dell'output, mettendo il numero dopo il nome del file (se presente).-l Restituisci solo i nomi dei file che contengono almeno una riga corrispondente.-i Confronta ignorando la differenza tra maiuscole e minuscole.-v Inverti il programma: raccogli tutte le righe che non corrispondono.-x Cerca solo le righe in cui la stringa di ricerca corrisponde all'intera riga.A differenza della maggior parte degli esercizi di Arturo, la suite di test non importerà direttamente src/grep.art.
La soluzione verrà invece eseguita come script Arturo autonomo, ricevendo una serie di argomenti dalla riga di comando.
Puoi usare argarg o argsargs per accedere a questi argomenti della riga di comando, che contengono zero o più flag, un pattern di ricerca e uno o più nomi di file.
Questi file vengono creati e popolati dalla suite di test in fase di esecuzione.
La soluzione dovrà leggere il file richiesto e scrivere l'output previsto sullo standard output.
Iscriviti a Exercism per imparare e padroneggiare Arturo con 79 esercizi e il mentoring di persone reali, tutto gratis.