Вы можете использовать grep -E чтобы получить доступ к расширенному синтаксису регулярных выражений (такой же, как эгреп)
Я создал тестовый файл с нижеприведенным содержимым:
>cat testfilethis is some textwith some random linesagain some textok now going for numbers (:32)ok now going for numbers (:12)ok now going for numbers (:132)ok now going for numbers (:1324)
Теперь, чтобы выделить только цифры из текста, вы можете использовать
>grep -Eo '[0-9]{1,4}' testfile32121321324
будет выводиться.
Здесь "-о" используется для вывода только соответствующего сегмента строки, а не полного содержимого строки.
Волнистые скобки (например, { и }) указывают количество экземпляров совпадения. {1,4} требует, чтобы предыдущий символ или класс символов встречались по крайней мере один раз, но не более четырех раз.
Вы можете использовать выражение в квадратных скобках [:digit:] указано в разделе 9.3.5 Стандарт POSIX , в сочетании с -o установите флажок для печати только совпадающих "слов"
$ grep -o '[[:digit:]]*' <<< $'No number in this line\nbut 123 here' 123
Я бы использовал curl для доступа к вашему файлу локально или удаленно, затем я бы выделил строки с числами, заключенными в (: ), затем отрезал бы эти фрагменты и записал в файл
принятый ответ игнорирует, что в предыдущих строках файла могут быть числа, это работает для примера данных, но что, если файл был удаленным?
В будущем также проверьте справочную страницу для grep (или любой другой программы). На справочной странице подробно описаны параметры, необходимые для многих распространенных применений программы. например, man grep