2015-01-14 3 views
0

Я пытаюсь заменить текст с помощью sed, но я действительно озадачен поиском причины сбоя.Как заменить текст на «:» с помощью sed

Main file 
    =========== 
    [email protected]>cat test 
    new=21:58:22 
    old=09:58:22 

    echo $new 
    echo $old 

    [email protected]>sed -i 's/$old/$new/g' yoo 
    [email protected]> 
    [email protected]> 
    desired output 
    ============== 
    [email protected]>cat yoo 
    09:58:22 
    09:58:22 
    09:58:2209:58:22 
    09:58:2209:58:22 
    asdasd 
    [email protected]> 

После этого я предполагал, что получаю новые значения в файле yoo, но никакие изменения не являются отражением.

+4

использовать двойные кавычки вместо одинарных кавычек. 'sed -i 's/$ old/$ new/g" yoo' –

+1

Переменные оболочки не расширяются в одинарных кавычках. –

+1

Спасибо .. хорошо работает. Должен был пробовать это перед тем, как спросить –

ответ

0

Вам необходимо расширить переменные, используя двойные кавычки, как это,

sed -i "s/$old/$new/g" yoo 
Смежные вопросы