Я думаю, что вы ищете:
grep -E '^.{15} pattern'
Это будет нормально в большинстве случаев использования. Однако обратите внимание, что он не будет «соответствовать» только части шаблона
, но все, что до него, также будет включено в сопоставление. Вы увидите это, выделив grep
(если - цвет
задан напрямую или был включен в псевдоним оболочки). Без цвета это повлияет на grep -o
, который печатает только совпадающую часть. Например:
$ echo 'bla bla bla bla pattern' | grep -Eo '^.{15}( pattern)'
bla bla bla bla pattern
Чтобы избежать этого с помощью GNU grep, вы можете использовать выражение perl с поиском назад. Например:
$ echo 'bla bla bla bla pattern' | grep -Po '(?<=^.{15}) pattern'
pattern
Это «соответствует» только части шаблона
.
Вот что я бы сделал:
Тогда я бы:
Allow all granted ## and the rest of the world!
Allow host blah.xxx.com ## --except for this one host in xxx.com
Deny not host xxx.com ## nobody from this domain gets in...
Но:
Allow host blah.xxx.com ## --except for this one host in xxx.com
Бессмысленно, потому что это разрешено первым.
Потому что:
Order Allow,Deny
Allow from example.org
Deny from foo.example.org
Приказ предназначен для ограничения до хоста, а не от домена до хоста.
Короче говоря, из-за того, как работает порядок, то, что вы хотите, на самом деле невозможно, только с apache. Потому что последняя директива всегда переопределяет остальные.
Однако вы можете заблокировать нужный хост, не пропустив его через брандмауэр.
Поскольку брандмауэр является первым, он даже не собирается обращаться к сервису, нуждающемуся в фильтрации.