У меня есть ситуация, когда мне нужно использовать grep для сопоставления строк, а опция использования переключателя -F
недоступна. Причина, по которой он недоступен, вызывает grep из сторонней библиотеки, над которой я не контролирую.Предотвращение синтаксиса синтаксического анализа синтаксического анализа синтаксического анализа при использовании -F отсутствует
Строка Я пытаюсь соответствовать точно
0 2 * * * /usr/bin/find /data/app-logs/ -mindepth 1 -mtime +14 -a \(-name "*.log*" -o -name "*.out*" -o -name "*.err*" \) -delete
, поэтому запись кронтаб. Требуется обратная косая черта.
Grep версия используется в:
grep (GNU grep) 2.5.1
Я попытался избежать всех [*\.]
персонажей, как я считаю, что это все, что нужно избежать при регулярном Grep, но безрезультатно. Поблагодарили бы за помощь. Я уверен, что это что-то маленькое, что мне не хватает.
См http://stackoverflow.com/questions/407523/escape-a-string-for-a-sed-replace-pattern. Символы, требующие экранирования, следующие: '' 'sed -e 's/[\/&]/\\ &/g'''' –
У вас есть источник сторонней библиотеки, или вы можете иначе связать его вызов 'grep'? Это делается через оболочку или системный вызов или через какую-либо форму 'exec'? –
Не уверен, что это то, что вы хотите: 'grep '^ 0 2 \ * \ * \ */usr/bin/find/data/app-logs/-mindepth 1 -mtime +14 -a \\\ (-name \ "\ * \. log \ * \" -o -name \ "\ * \. out \ * \" -o -name \ "\ *. err \ * \" \\\) -delete $ "myfile' –