Ниже приведен мой пример файла данных.
$ cat test.conf
Options -Indexes -FollowSymLinks -Includes -ExecCGI
#Options -Indexes -FollowSymLinks -Includes -ExecCGI
<Directory "/web/htdocs">
Options -Indexes -FollowSymLinks -Includes -ExecCGI
<Directory "/web/htdocs"> Options -Indexes -FollowSymLinks -Includes -ExecCGI
RewriteOptions -tester
Options -Indexes -FollowSymLinks -Includes -ExecCGI
I wi sh, чтобы получить все записи (только одиночные строки), используя регулярное выражение, которое
начинается со строки "Options"
, за которым следует строка из этих строк "Indexes" "FollowSymLinks" "Includes" "ExecCGI"
Я попробовал приведенное ниже регулярное выражение, но проблема в том, что он выдает результат "#Options -Indexes -FollowSymLinks -Includes -ExecCGI"
, где строка начинается с ha sh '#' как а также строка "<Directory "/web/htdocs"> Options -Indexes -FollowSymLinks -Includes -ExecCGI"
, которая не начинается с опций в новой строке.
Токовый выход:
$ grep -E '^[^\n|#]*[^!Rewrite]Options.*|Indexes|FollowSymLinks|Includes|ExecCGI$' test.conf
Options -Indexes -FollowSymLinks -Includes -ExecCGI
#Options -Indexes -FollowSymLinks -Includes -ExecCGI
Options -Indexes -FollowSymLinks -Includes -ExecCGI
<Directory "/web/htdocs"> Options -Indexes -FollowSymLinks -Includes -ExecCGI
Options -Indexes -FollowSymLinks -Includes -ExecCGI
Желаемый выход:
Options -Indexes -FollowSymLinks -Includes -ExecCGI
Options -Indexes -FollowSymLinks -Includes -ExecCGI
Options -Indexes -FollowSymLinks -Includes -ExecCGI
I ' я не ищу grep -v
как решение, а вместо этого отрицание регулярного выражения.
Можете ли вы предложить регулярное выражение для удовлетворения моего требования?