2014-01-06 5 views
0

Я пытаюсь заменить конкретный символ в строке, используя скрипт bash, но я терпит неудачу.Замена строки в скрипте bash, дающая ошибку

Я следующий код

line=${array[1]} 
    echo ${array[1]} 
    echo ${array[0]} 
    echo `expr index "$line" *` 

Линия или массива [1] содержит следующие строки /path/v1/module/order/*, и я хочу, чтобы заменить * с некоторым входным значением из другого файла.

Но я получил ошибку в последней строке ... Я пробовал с переменной строки и даже с массивом. Ошибка была expr: syntax error

P.S: Я использую Баш версии 3

ответ

2

Только с помощью Баша parameter expansion

line='/path/v1/module/order/*' 
repl='some other value' 
newvalue=${line/\*/$repl} 
echo "$newvalue" 
/path/v1/module/order/some other value 
+0

отлично ....... , –

1

неупомянута звездочка расширяется в список имен файлов, прежде чем expr называется. Используйте

echo $(expr index "$line" "*") 

($(...) не является необходимым, но рекомендуется вместо обратных кавычек.)

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