Мне нужен инструмент типа grep для поиска чисто буквальных строк. Я ищу появление строки файла журнала как части строки в отдельном файле журнала. Текст поиска может содержать всевозможные специальные символы регулярных выражений, например,[]().*^$-\
.
Есть ли поисковая утилита Unix, которая не будет использовать регулярное выражение, а просто ищет буквальные вхождения строки?
grep
поиск буквальных строк?» вместо "Есть ли что-то подобное,grep
что может искать буквальные строки?" Вы знаете, что отвертки с плоской головкой подходят для головок Philips;)
Ответы:
Для этого можно использовать grep с параметром -F.
источник
-e
опции. Как это:grep -F -e "fixed1" -e "fixed2" -e "fixed3" -e "fixed4"
.fgrep
используется.grep --include=\*.php -FRn -e "$$"
дало никакого результата: использование одинарных кавычек дало мне желаемый результат:grep --include=\*.php -FRn -e '$$'
$
и несколько других символов являются специальными, и они будут заменены на bash после того, как вы нажмете Enter и до выполненияgrep
(или любой другой команды). Вы можете указать bash оставить все символы (кроме одинарной кавычки) нетронутыми, заключив их в одинарные кавычки. Если вам нужно ввести одинарную цитату, сделайте это так'I'\''m special'
Это либо,
fgrep
либо то,grep -F
что не подходит для регулярных выражений.fgrep
идентичен,grep -F
но я предпочитаю не беспокоиться об аргументах, поскольку по своей природе ленив :-)источник
egrep
иfgrep
не определены стандартом POSIX;grep -F
иgrep -E
являютсяПерейти
-F
кgrep
.источник
вы также можете использовать awk, поскольку он имеет возможность находить фиксированную строку, а также возможности программирования, например, только
источник
вывод
источник