Risposte:
sed -i 's|'$fileWithPath'|HAHA|g' file
Le virgolette singole definiscono una stringa letterale. Mettere la variabile fuori dal valore letterale consente alla shell di espandere quella parte.
Inoltre: se si intende analizzare i percorsi, utilizzare un delimitatore nel comando sed che non confonda con il delimitatore di directory "/".
sed -i 's|auth-user-pass nordvpn.txt|auth-user-pass /etc/openvpn/nordvpn.txt|g' *.ovpn
sembra funzionare.
Un modo migliore per stringhe letterali con barre in avanti:
sed -i "s|my/path|my/other/path|g" myFileOfPaths.txt
In circostanze in cui la stringa sostitutiva o la stringa del motivo contengono barre, è possibile sfruttare il fatto che GNU sed consente un delimitatore alternativo per il comando sostitutivo. Le scelte comuni per il delimitatore sono il carattere pipe | o l'hash # - la scelta migliore del carattere di delimitazione dipende spesso dal tipo di file in elaborazione. Nel tuo caso puoi provare
sed -i 's#'$fileWithPath'#HAHA#g' $file
Il carattere 'g' dopo l'ultimo # viene utilizzato per modificare tutte le occorrenze nel file se è necessario modificare solo la prima occorrenza, quindi rimuovere la 'g'.
$fileWithPath
contiene spazi bianchi, viene inserito il modello sbagliato.