Я пытаюсь использовать элементы следующего массива для замены некоторых строк в файле:
declare -a replacements=($name, $description, $date, $keywords)
Используя условия поиска в этом массиве:
declare -a searchs=("a.name", "a.description", "a.date", "a.keywords")
Проблема в том, что некоторые переменные (например, description
) содержат пробелы:
declare description = "My name is Jonah"
, что вызывает странное поведение в следующем фрагменте кода:
for ((i = 0; i < ${#searchs[@]}; i++))
do
sed -i -e "s/${searchs[$i]}/${replacements[$i]}/g" "./${directory}/data.txt"
done
Циклы for использует каждое слово в строке в качестве замены вместо всей строки.
Есть ли способ исправить эту ошибку? Заранее спасибо!