Ошибка grep: недопустимый операнд оператора повторения

Итак, получается, что хотя nginx будет прослушивать все интерфейсы, включение nginx фактически не открывает порт на брандмауэре.

В своем исходном тесте я открыл порт брандмауэра, а затем получил доступ к службе с удаленного компьютера. Это был мой контрольный тест, чтобы убедиться, что сервис действительно доступен. Затем я закрыл порт брандмауэра. Сервис остался доступен, но только тому браузеру на том компьютере. Дальнейшие тесты показали, что как только я закрывал порт, другие браузеры не могли получить доступ к сервису, а исходный браузер в конечном итоге тоже потерял доступ.

1
15.11.2016, 00:23
1 ответ

Сообщение об ошибке указывает, что одна или несколько строк в file1 не соответствуют синтаксису регулярных выражений. Если вы ищете строки как есть, а не регулярные выражения, вам следует использовать опцию -F (фиксированные строки).

Однако настоящая проблема в том, что вы не можете использовать grep для своих целей, потому что более короткие строки могут ошибочно соответствовать более длинным строкам. Например, если файл1 содержит пустую строку, тогда эта строка будет соответствовать всем строкам в файле2 .

Лучше отсортировать файлы и использовать diff :

TmpFile1=$(mktemp)
TmpFile2=$(mktemp)
sort $File1 >$TmpFile1
sort $File2 >$TmpFile2
# Display the lines in $File1 which do not appear in $File2
diff $TmpFile1 $TmpFile2 | grep '^>' | cut -c 3-
# Delete the temporary files
rm $TmpFile1 $TmpFile2
0
28.01.2020, 01:07

Теги

Похожие вопросы