Гаразд, трохи пізно додаю в свій внесок, але я думаю, що воно того варте.
Вимога, яку необхідно виконати, за ОП - це перший стовпець, що має десяткове значення .000або .500тільки. Немає жодних умов щодо провідного значення, ні за діапазоном, ні за довжиною. Для надійності не слід вважати, що обмежує будь-що, крім того, що перед першим стовпцем (або це вже не перший стовпець) немає порожніх символів і що вміст першого стовпця матиме десяткові крапки ., в ньому десь.
Оперативна програма хоче використовувати grep, яка буде надрукувати весь рядок, коли буде знайдено відповідність, тому єдине, що потрібно зробити, - це створити шаблон, який відповідає всім і лише тому, що потрібно.
Сама простота і відсутність причин використовувати sedабо awkяк "grep" можуть обробляти джерело у вигляді файлу або труби.
Для grepвикористання файлівgrep '^[^.]*\.[05]0\{2\}\s' the_file.txt
До grepтруби, використовуйтеmy_command | grep '^[^.]*\.[05]0\{2\}\s'
Візерунок такий: ^починати на початку рядка; [^.], збігаються з будь-яким недесятковим символом; *, якомога більше разів (включаючи жоден); \., відповідність десяткової крапки; [05], відповідати або п'ятірці, або нулю; 0\{2\}, співставити ще 2 нулі (зворотна коса риса перед відкритим і закритим дужкою запобігає спробі оболонки зробити розширення дужок); \s, відповідати символу пробілу (означає кінець стовпця - для використання в іншому випадку використання замініть роздільником стовпців, як правило, коміном, комою або вкладкою \t).
Зауважте, що це відповідатиме точно тому, що запитувала ОП. Він не збігається .5000або .0000хоча б чисельно еквівалентний, оскільки візерунок шукає п’ять або нуль, а за ним ще точно два нулі, а потім пробіл. Якщо це важливо, то всі інші відповіді, поки що, не відповідають тому, що вони будуть відповідати будь-якій кількості нулів, більше 1, після тестової цифри. І крім відповіді по FloHimself, вони будуть відповідати нічого в другому стовпці , який починається .000 або .500, в тому числі .0003і .500T, і один на FloHimself буде відповідати все , що математично еквівалентно .0і.5, скільки б не було нулів. Останній, хоч і не відповідає тому, що заявлено в ОП, все одно відповідає тому, що ОП потребує.
Нарешті, якщо awkбажана потужність і швидкість, навіть незважаючи на те, що просив ОП grep, команда буде:
З файлом awk '$1 ~ /[^.]\.[05]0{2}$/' the_file.txt
З трубою my_command | awk '$1 ~ /[^.]\.[05]0{2}$/'