2013-07-26 6 views
0

Я пытаюсь заменить шестнадцатеричный код в моих таблицах стилей к переменной - Я пытаюсь сделать:Grep - найти и заменить

grep -rl '#e5f6fc' mydirectory | xargs sed -i 's/#e5f6fc/$highlight-blue/g' 

Я предполагаю, что «#», «$» и " - «делают что-то, чтобы вызвать эту ошибку. Я пытался исследовать, как набирать выражения с помощью grep, но я не могу найти что-нибудь, чтобы помочь мне. Любая помощь будет принята с благодарностью. Ошибки я получаю:

несогласованной замены в регулярном выражении

ответ

0

У вас есть недостающая одинарная кавычка в команде Grep, он должен быть:

grep -irl '#e5f6fc' mydirectory | xargs sed -i.bak 's/#e5f6fc/$highlight-blue/Ig' 

PS: Я сделал как Grep и СЭД ignore case

+0

Извините, но я, возможно, удалил цитату, когда я форматировал ее в переполнении стека. Я ввел это: grep -irl '# e5f6fc' mydirectory | xargs sed -i 's/# e5f6fc/$ highlight-blue/g' и grep -rl '# e5f6fc' mydirectory | xargs sed -i 's/# e5f6fc/$ highlight-blue/g', и я все еще получаю «unterminited substitute в регулярном выражении» – Jamie

+0

@Jamie: Какова ваша версия sed? Поскольку эта отредактированная твоя команда отлично работает для меня. – anubhava

+0

Можете ли вы попробовать: 'grep -irl '# e5f6fc' mydirectory | xargs sed -i.bak 's/\ # e5f6fc/\ $ highlight-blue/g'' – anubhava

Смежные вопросы