Я, кажется, неправильно использую grep
. Заметьте:
> hg log <filepath> | egrep changeset
changeset: 3961:9dedc55e030a
changeset: 3651:d23495ab1168
changeset: 2974:6aa71cb2c575
changeset: 2756:9dd7fb635678
changeset: 2532:d3ced9af4d6c
changeset: 2459:9d5f5553b851
changeset: 1835:4558836beed1
changeset: 1628:517d0239e830
Но когда я использую более конкретное регулярное выражение, чтобы попытаться перейти на количество цифр в наборе изменений, оно становится пустым.
> hg log <filepath> | egrep \d{3,6}
> egrep: d6: No such file or directory
Почему это может быть? Если я просто использую \d
сам по себе, он снова возвращает все.
\d{3,6}
анализируется Bash как d3 d6
. Это означает, что передается egrep
как два аргумента, что означает, что это пытается открыть второе как файл, потому что это - синтаксис grep.
grep [OPTIONS] PATTERN [FILE...]
решение просто. Остановите вмешательство Bash и заключите Ваш regex в кавычки:
... | egrep '\d{3,6}'