У меня есть файл тест свойств с этим в нем:Свойства Файл с Sed регулярного выражением - Игнорировать первый символ для матча
-config.test=false
config.test=false
Я пытался, используя СЭД, обновлять значения этих свойств, имеют ли они -
перед ними или нет. Первоначально я использовал это, который работал:
sed -i -e "s/#*\(config.test\)\s*=\s*\(.*\)/\1=$(echo "true" | sed -e 's/[\/&]/\\&/g')/" $FILE_NAME
Однако, так как я был в основном игнорирует все символы перед матчем, я обнаружил, что, когда я имел свойства с ключами, которые закончились в том же значении, что бы дать мне проблемы. Такие, как:
# The regex matches both of these
config.test=true
not.config.test=true
Есть ли способ либо игнорировать первый символ на матч или игнорировать первоначальный -
конкретно?
EDIT:
Добавление небольшого разъяснения в отношении того, что я хочу, чтобы регулярное выражение, чтобы соответствовать:
config.test=false # Should match
-config.test=false # Should match
not.config.test=false # Should NOT match
Добавьте '\ (^ \ | - \)' в начале шаблона. –
Смотрите: [Часто задаваемые вопросы о регулярных выражениях переполнения стека] (http://stackoverflow.com/a/22944075/3776858) – Cyrus