2012-02-28 4 views
1

Я использую СЭД для замены URL, в файл, все работает отлично только икота, когда URL содержит «\»оболочки побег обратной косой черты в переменной

exmaple URL: HTTP * *: // WWW. example.com/simi/icr

# variables 
ICR_KEY=somekey 
ICR_KEY_VAL="http\://www.example.com/simi/icr" 
sed "s!${ICR_KEY}=.*!${ICR_KEY}=${ICR_KEY_VAL}!" properties > tmp 

Это заменяет URL, но вывод не содержит обратную косую черту от значения переменной.

+0

Молитесь, скажите, * почему * имеет ли URL-адрес люфт? –

+0

Этот url далее подан в процедуру java, которая находится в оракуле, это все, что я знаю ... :) – sid

+0

О, отлично, это не просто черный ящик, это * запаздывающий * черный ящик ... –

ответ

1

Оба bash и sed интерпретируют обратную косую черту как символ эвакуации. Используйте одинарные кавычки, чтобы предотвратить это для bash, и удвоить обратную косую черту для sed:

ICR_KEY_VAL='http\\://www.example.com/simi/icr' 
+0

awesome, я попробовал двойной обратная косая черта и бог знает, что .. но никогда ни одна цитата. Большое спасибо !! – sid