У меня есть файл, как это:
other lines . . .
blah blah blah (:34)
Я хочу найти вхождение чисел в вышеуказанный файл. Я придумал:
grep [0-9] filename
Но это печать всего:
blah blah blah (:34)
Скорее хочу только 34
. Есть ли способ сделать это?
command-line
bash
text-processing
grep
муравьев
источник
источник
man grep
Ответы:
Вы можете использовать
grep -E
для доступа к расширенному синтаксису регулярного выражения (То же, что egrep )Я создал тестовый файл с содержанием ниже:
Теперь, чтобы извлечь только цифры из текста, который вы можете использовать
будет вывод.
Здесь «-o» используется только для вывода соответствующего сегмента строки, а не полного содержимого строки.
Квадратные скобки (например, {и}) указывают количество совпадений. {1,4} требует, чтобы предыдущий символ или класс символов встречался хотя бы один раз, но не более четырех раз.
Надеюсь это поможет
источник
grep -Eo '[0-9]{1,}' testfile
Вы можете использовать скобочное выражение RE,
[:digit:]
указанное в разделе 9.3.5 стандарта POSIX , в сочетании с-o
флагом для печати только соответствующих «слов»источник
grep -o
будет печатать только соответствующую часть строки. В противном случае grep напечатает любые строки с шаблоном.источник
Я бы использовал curl для локального или удаленного доступа к вашему файлу, затем я бы собрал строки с числами, завернутыми в (:), затем обрезал эти фрагменты и записал в файл
принятый ответ игнорирует, что в предыдущих строках файла могут быть числа, он работает для данных примера, но что, если файл был удаленным?
Местный
В этом примере
output.txt
в вашей текущей папке будет перезаписано, мы получаем доступinput.txt
из вашей общей папки.Удаленный
В этом примере
output.txt
в вашей текущей папке будет перезаписано, мы получаем доступinput.txt
изhttps://yoursite.com/Public/
.источник
curl
когда простоеcat
будет делать?