как изменить текст с 2 массивами в скрипте fi sh? - PullRequest
0 голосов
/ 04 августа 2020

Я новичок ie в fi sh. Я пытаюсь изменить текст в файле с помощью sed. Я хочу выполнить 4 редактирования:

set ar1 old1 old2 old3 old4
set ar2 new1 new2 new3 new4
set i 1 #for 2nd array
for ch in $ar1
  sed -i 's/$c/$ar[$i]/g' file.php
  set i (math $i + 1)
end 

Но я обнаружил, что он не увеличивается.

Почему не работает? Есть ли более простой способ сделать это?

1 Ответ

2 голосов
/ 04 августа 2020

Одинарные кавычки предотвращают расширение переменной. Используйте двойные кавычки. https://fishshell.com/docs/current/index.html#quotes

Альтернативный способ l oop:

for i in (seq (count $ar1))
  sed -i "s/$ar1[$i]/$ar2[$i]/g" file.php
end
...