Linux: вывод в консоль всех чисел из файла

Для выборки всех чисел из файла воспользуемся утилитой grep:
grep -o "[0-9]" filename
[0-9] - регулярное выражение, в которое попадают только цифры от 0 до 9. Флаг -о заставляет grep выводить не всю найденную строку, а только то, что задано регулярным выражением. Проблема в том, что таким образом grep выведет все цифры, нам же нужны все числа. Нужно дописать регулярное выражение:
grep -oE "[0-9]{1,}" filename
Флаг -Е разрешает расширенные регулярные выражения (extended regexp), а {1,} определяет длину предыдущего выражения. В нашем случае, будут найдены все последовательности из цифр длиной от одного символа и больше, то есть все числа. Можно также ограничить максимальную длину числа (например, не больше 5 цифр), указав верхнюю границу в выражении:
grep -oE "[0-9]{1,5}" filename
В следующем посте пример того, как обработать полученный вывод.

1 комментарий :