Ответы:
sed -i 's|'$fileWithPath'|HAHA|g' file
Одинарные кавычки определяют строковый литерал. Помещение переменной за пределы литерала позволяет оболочке расширять эту часть.
Также: если вы собираетесь анализировать пути, используйте разделитель в команде sed, который не следует путать с разделителем каталога "/".
sed -i 's|auth-user-pass nordvpn.txt|auth-user-pass /etc/openvpn/nordvpn.txt|g' *.ovpn
Кажется, мой пример работает.
Лучший способ для буквенных строк с косой чертой:
sed -i "s|my/path|my/other/path|g" myFileOfPaths.txt
В тех случаях, когда строка замены или строка шаблона содержат косую черту, вы можете использовать тот факт, что GNU sed позволяет использовать альтернативный разделитель для команды замены. Распространенным выбором для разделителя является символ трубы | или хэш # - лучший выбор символа-разделителя часто зависит от типа обрабатываемого файла. В вашем случае вы можете попробовать
sed -i 's#'$fileWithPath'#HAHA#g' $file
Символ «g» после последнего # используется для изменения всех вхождений в файле, если вам нужно изменить только первое вхождение, а затем удалить «g».
$fileWithPath
есть пробелы, вставляется неправильный шаблон.