Grep

Grep

Μέτριο

Εισαγωγή

Έπιασες δουλειά σε μια τοπική βιβλιοθήκη, βοηθώντας στην οργάνωση της συλλογής παλιών βιβλίων της. Οι φοιτητές που την επισκέπτονται συχνά ψάχνουν μισοθυμημένα αποσπάσματα για να τα παραθέσουν στις εργασίες τους. Αντί να διαβάσεις χειροκίνητα κάθε βιβλίο από την αρχή ως το τέλος, αποφασίζεις να φτιάξεις ένα μικρό εργαλείο για να τα σαρώνει, ψάχνοντας για αυτά τα ημιτελή αποσπάσματα.

Οδηγίες

Ψάξε σε αρχεία για γραμμές που ταιριάζουν με μια συμβολοσειρά αναζήτησης και επέστρεψε όλες τις γραμμές που ταιριάζουν.

Η εντολή grep του Unix ψάχνει σε αρχεία για γραμμές που ταιριάζουν με μια κανονική έκφραση. Η αποστολή σου είναι να υλοποιήσεις μια απλοποιημένη εντολή grep, η οποία υποστηρίζει αναζήτηση για σταθερές συμβολοσειρές.

Η εντολή grep δέχεται τρία ορίσματα:

  1. Τη συμβολοσειρά που θα αναζητήσεις.
  2. Μηδέν ή περισσότερες σημαίες για την προσαρμογή της συμπεριφοράς της εντολής.
  3. Ένα ή περισσότερα αρχεία στα οποία θα γίνει η αναζήτηση.

Στη συνέχεια, διαβάζει τα περιεχόμενα των αρχείων που δίνονται (με τη σειρά που δίνονται), βρίσκει τις γραμμές που περιέχουν τη συμβολοσειρά αναζήτησης και, τέλος, επιστρέφει αυτές τις γραμμές με τη σειρά με την οποία βρέθηκαν. Όταν η αναζήτηση γίνεται σε πολλά αρχεία, μπροστά από κάθε γραμμή που ταιριάζει μπαίνει το όνομα του αρχείου και μία άνω και κάτω τελεία (':').

Σημαίες

Η εντολή grep υποστηρίζει τις εξής σημαίες:

  • -n Βάζει τον αριθμό της γραμμής και μία άνω και κάτω τελεία (':') μπροστά από κάθε γραμμή της εξόδου, τοποθετώντας τον αριθμό μετά το όνομα του αρχείου (αν υπάρχει).
  • -l Εμφανίζει μόνο τα ονόματα των αρχείων που περιέχουν τουλάχιστον μία γραμμή που ταιριάζει.
  • -i Κάνει αντιστοίχιση αγνοώντας πεζά και κεφαλαία.
  • -v Αντιστρέφει τη λειτουργία του προγράμματος: συλλέγει όλες τις γραμμές που δεν ταιριάζουν.
  • -x Αναζητά μόνο γραμμές στις οποίες η συμβολοσειρά αναζήτησης ταιριάζει με ολόκληρη τη γραμμή.

Ειδικές οδηγίες για την Arturo

Σε αντίθεση με τις περισσότερες ασκήσεις της Arturo, το src/grep.art δεν θα εισαχθεί άμεσα από τη σουίτα δοκιμών. Αντίθετα, η λύση σου θα εκτελεστεί ως αυτόνομο script Arturo, λαμβάνοντας μια σειρά από ορίσματα γραμμής εντολών. Μπορείς να χρησιμοποιήσεις το argarg ή το argsargs για να έχεις πρόσβαση σε αυτά τα ορίσματα γραμμής εντολών, τα οποία περιέχουν μηδέν ή περισσότερες σημαίες, ένα μοτίβο αναζήτησης και ένα ή περισσότερα ονόματα αρχείων. Αυτά τα αρχεία δημιουργούνται και συμπληρώνονται από τη σουίτα δοκιμών κατά την εκτέλεση. Η λύση σου θα πρέπει να διαβάσει το ζητούμενο αρχείο και να γράψει την αναμενόμενη έξοδο στην τυπική έξοδο.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Arturo Exercism

Έτοιμος να ξεκινήσεις την άσκηση Grep;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Arturo με 79 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.