Я ищу для поиска файла для всех строк, которые не содержат цифр, я придумал следующее регулярное выражение.

\D*/g

Который работает, как я хочу в этом онлайн-инструменте: https://regex101.com/#pcre, но когда я запускаю следующую команду:

grep -c "\D*/g" nonDistortResults.txt 

Возвращается 0 .

Файл отформатирован следующим образом:

2573
kitchenDoor 2573
2573
2573
2573
2574
2574
2574
2574
kitchenDoor 2574
2574
2574
2575
2575
2575
2575
2575
kitchenDoor 2575
2576

Так что в приведенном выше примере я ожидаю, что он вернет 3 .

1 ответ1

1

Вы должны адаптировать свой шаблон следующим образом:

grep -c \D nonDistortResults.txt
  • Нам не нужен флаг 'жадный', поскольку grep уже работает со строками
  • Цитаты здесь не обязательны
  • Звездой может быть любое количество результатов, включая 0 (поэтому, используя ее, вы получите значение true для каждой строки)

Если вам нужно снова использовать некоторые регулярные выражения Pearl (PCRE), вы можете взглянуть на опцию -P в grep, но на странице руководства написано:

-P, --perl-regexp
Интерпретировать PATTERN как регулярное выражение Perl (PCRE, см. Ниже). Это очень экспериментально, и grep -P может предупредить о невыполненных функциях.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .