В команде grep я могу изменить на ?

Будет ли grep [0-9] работать так же, как grep [:digit:] ?

4 Solutions collect form web for “В команде grep я могу изменить на ?”

Нет, [0-9] не совпадает с [:digit:] .

[0-9] соответствует цифрам от 0 до 9.

[:digit:] совпадает с 0 по 9, а также цифры на незападных языках (например, на восточном арабском языке).

Точнее, [0-9] гарантируется, что он будет эквивалентен [:digit:] если:

  • синтаксический анализатор regexp поддерживает [:digit:] (т. е. если это не так, то существующая [:digit:] вероятно, не делает то, что вы думаете) и:

  • входной набор символов является одним из таких, как ASCII, где единственными цифрами являются символы 0 и они смежны. Это может быть неверно в (например, unicode (где цифры могут содержать символы, отличные от цифр 0 ), или даже в других 8-битных наборах символов, где 0 может не быть смежным (как это происходит в EBCDIC, цифры 09 смежны).

Примеры исключений из Юникода показаны здесь . Поскольку вы можете видеть, что набор символов Юникода в категории «Число, Цифры, Десятичные числа» включает в себя более 10 цифр ASCII, сопоставляемых [0-9] ; он включает арабский знак, расширенный арабский, ngo и т. д.

Более подробную информацию о цифрах в Юникоде можно найти здесь .

Вы можете изменить [[:digit:]] на [0-9] – примечание [:digit:] находится внутри […] . Это зависит от кодировки ввода. Если это ASCII, я не думаю, что проблема будет. С другими кодировками цифры могут быть не смежными, или диапазон байтов может отличаться. Вы также можете пропустить специальные номера в других системах письма.

'[: digit:]' теоретически более портативен, преимущество в том, что он не будет зависеть от локального набора символов, объединяющего все комбинации.

Пример: с «[: upper:]» vs «[AZ]» нет никакой разницы в ASCII, но есть разница в старой системе IBM EBCDIC , где «[AZ]» будет охватывать 41 символ не 26, (EBCDIC коды 193-233) и поэтому будет соответствовать EBCDIC "} \" et al.

  • Как grep несколько файлов, используя часть имени файла как шаблон?
  • Собирать информацию об использовании работы в кластере
  • Как в режиме реального времени выводить вывод, содержащий индикатор выполнения?
  • извлекать линии в соответствии с конкретным столбцом
  • Найти все файлы и использовать результат в шаблоне поиска grep
  • найти совпадающие URL-адреса в строке, а затем сократить их до имени домена
  • Отображать строки между текстом с помощью grep
  • Удалить строку, содержащую нечувствительность к регистру
  • Как найти строки, содержащие более 100 символов, и содержит «if»?
  • Zgrep останавливается после первого совпадения, когда аргументы передаются из xargs
  • С grep, как я могу сопоставить шаблон и инвертировать совпадение с другим шаблоном?
  • Linux и Unix - лучшая ОС в мире.