Ok, aggiungo un po 'tardi al mio contributo, ma penso che ne valga la pena.
Il requisito da soddisfare, per l'OP è la prima colonna con il valore decimale .000o .500solo. Non è previsto il valore guida, per intervallo o lunghezza. Per robustezza, non si deve presumere che sia vincolato da nulla tranne che non ci sono caratteri non vuoti prima della prima colonna (o non è più la prima colonna) e che il contenuto della prima colonna avrà un punto decimale ., in esso da qualche parte.
L'OP vuole usare grep, che stamperà l'intera riga quando viene trovata una corrispondenza, quindi l'unica cosa da fare è creare il modello che corrisponda a tutto e solo ciò che è richiesto.
Semplicità stessa, e nessun motivo per usare sedo awkcome `grep può gestire il sorgente come file o pipe.
Per grepun file utilizzaregrep '^[^.]*\.[05]0\{2\}\s' the_file.txt
Da grepuna pipa, usaremy_command | grep '^[^.]*\.[05]0\{2\}\s'
Il modello è:, ^inizia all'inizio della riga; [^.], abbina qualsiasi carattere non decimale; *, il maggior numero di volte possibile (incluso nessuno); \., abbina un punto decimale; [05], abbina un cinque o uno zero; 0\{2\}, abbina altri 2 zeri (le barre rovesciate prima della parentesi aperta e chiusa impediscono alla shell di tentare di eseguire l'espansione della parentesi); \s, abbina un carattere di spazio (che indica la fine della colonna - da utilizzare in un caso d'uso diverso, sostituiscilo con il separatore di colonna, in genere un segno comune, un punto e virgola o una scheda \t).
Si noti che questo corrisponderà esattamente a ciò che l'OP ha chiesto. Essa non corrispondere .5000o .0000anche se numericamente equivalente, perché l'aspetto del modello per cinque o zero, seguiti da esattamente 2 più zeri seguiti da spazi bianchi. Se questo è significativo, allora tutte le altre risposte, finora, falliscono in quanto corrisponderanno a qualsiasi numero di zeri, maggiore di 1, dopo la cifra del test. E ad eccezione della risposta di FloHimself, corrisponderanno a qualsiasi cosa nella seconda colonna che inizia .000 o .500, incluso .0003e .500T, e quella di FloHimself corrisponderà a qualsiasi cosa matematicamente equivalente a .0e.5, non importa quanti zeri ci siano. L'ultimo, pur non corrispondendo a quanto dichiarato dall'OP, probabilmente corrisponderà a ciò di cui l'OP ha bisogno comunque.
Infine, se awksi desidera la potenza e la velocità di , anche se l'OP ha richiesto grep, il comando sarebbe:
Con un file awk '$1 ~ /[^.]\.[05]0{2}$/' the_file.txt
Con una pipa my_command | awk '$1 ~ /[^.]\.[05]0{2}$/'